我必須將 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.*);

慕慕森
TA貢獻1856條經驗 獲得超17個贊
您可以針對不同的情況使用不同的序列化器,或者您可以創建 pojo 并@JsonProperty在需要時使用它們。
例如,
class A {
private String disclaimerConfirmed;
}
class AkebabCase {
@JsonProperty("disclaimer-confirmed")
private String disclaimerConfirmed;
}
因此,如果您想序列化為 kebab-case,您可以使用轉換器進行轉換A,AkebabCase然后進行序列化。
添加回答
舉報
0/150
提交
取消