亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在沒有 @JsonProperty 的情況下更改 json 中屬性的命名

在沒有 @JsonProperty 的情況下更改 json 中屬性的命名

鴻蒙傳說 2024-01-17 16:47:13
我必須將 json 從camelCase 轉換為kebab-case。例子:My Json:{    "disclaimerConfirmed" : true}我需要:{    "disclaimer-confirmed" : true}我無法使用 @JsonProperty,因為它會永久重命名此屬性。我正在尋找將消耗 Json (可以作為字符串)并返回修改后的 json (作為字符串)的東西。
查看完整描述

2 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

Jackson 支持命名策略,因此您可以讀取要映射的輸入字符串(使用駝峰命名策略),然后將映射寫回字符串(使用原生支持的kebab-case );

在沒有注釋的ObjectMapper中切換這些約定的具體方法是:

mapper.setPropertyNamingStrategy(PropertyNamingStrategy.*);


查看完整回答
反對 回復 2024-01-17
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

您可以針對不同的情況使用不同的序列化器,或者您可以創建 pojo 并@JsonProperty在需要時使用它們。


例如,


class A {

 private String disclaimerConfirmed;


}


class AkebabCase {

   @JsonProperty("disclaimer-confirmed")

   private String disclaimerConfirmed;

}

因此,如果您想序列化為 kebab-case,您可以使用轉換器進行轉換A,AkebabCase然后進行序列化。


查看完整回答
反對 回復 2024-01-17
  • 2 回答
  • 0 關注
  • 229 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號