簡體   English   中英

名稱中混合駝峰時如何從JSON [反]序列化為pojo對象

[英]How to [de]serialize to pojo objects from JSON when there is mixed camel case in names

我正在使用Dropwizard(在后台使用Jackson)創建橋接API服務。 它連接到兩個非常相似的其他API(API1和API2)。

我有自己的POJO庫,其中包含API1和API2的請求和響應POJO。 這兩個API之間的唯一區別是,對於某些對象,API1會發出大寫的鍵,而其他對象則不會。 基本上,一個API1用Java實現,而API2用.NET實現,但是兩者都提供相同的數據。

{
    "Name" : "foo",
    "Address" : "bar"
}

{
    "name" : "foo",
    "address" : "bar"
}

我想避免為每個對象編寫一個POJO類,否則它們是相同的對象。

告訴傑克遜接受任何一個名字的正確方法什么?

我知道@JsonProperty例如

@JsonProperty("Name")
private String name;

但是,即使這對“名稱”和“名稱”均適用,也感覺有些不整潔。 對我來說,聲明此批注應該實際上意味着忽略編碼字段名,而使用該批注。

提前致謝

您可以看一下可以為使用中的ObjectMapper定義的PropertyNamingStrategy

如果另一方在使用的約定方面不靈活(不接受大寫和小寫形式),則可以為不同的服務使用者(當您是生產者)定義不同的策略。

如果您有能力使用Jackson 2.5,那么可以看看mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true)

要完全控制傑克遜(反)序列化過程,請在自定義序列化自定義反序列化過程中優先使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM