2016-07-13 68 views
2

我有一個要求接收與包含下劃線的鍵,甚至忽略字的情況下的JSON。對於例如Device_control_API,device_control_API,Device_Control_API,device_control_aPI等都應該映射到相同的屬性。傑克遜 - 忽略案例中的蛇案例鍵

現在我知道我可以使用@JsonSetter創建多個setter方法,儘可能使用所有組合,但我認爲這不會太好。

我已經看到了使用mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true) 爲ObjectMapper對象忽略大小寫這表明其他問題,但我不能這樣做,因爲我用彈簧啓動,並希望我的REST API來獲取形式POJO對象的有效載荷。

是否有任何註解或某種方式來做到這一點

請幫助!

回答

2

我不認爲你可以使用MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES作爲註釋。接到here

傑克遜開/關功能的以下信息:MapperFeature

傑克遜定義了一組每個映射器的配置的,這隻能是 使用ObjectMapper之前定義的 - 這意味着這些設置 不能在每個請求的基礎上即時更改。他們配置了基本的POJO內省細節 ,並且生成的對象 (串行器,反序列化器,相關)被嚴重緩存。如果你需要 這些不同的設置,你必須使用單獨的ObjectMapper 實例。

MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES是其中的一種配置。


但也許一個自定義的反序列化類可以幫助你。在Stackoverflow上有很多教程和問題。

我發現了一些: