为了账号安全,请及时绑定邮箱和手机立即绑定

在没有 @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 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信