在没有 @JsonProperty 的情况下更改 json 中属性的命名

我必须将 json 从camelCase 转换为kebab-case。


例子:


My Json:

{

    "disclaimerConfirmed" : true

}

我需要:


{

    "disclaimer-confirmed" : true

}

我无法使用 @JsonProperty,因为它会永久重命名此属性。我正在寻找将消耗 Json (可以作为字符串)并返回修改后的 json (作为字符串)的东西。


鸿蒙传说
浏览 138回答 2
2回答

白衣染霜花

Jackson 支持命名策略,因此您可以读取要映射的输入字符串(使用驼峰命名策略),然后将映射写回字符串(使用原生支持的kebab-case );在没有注释的ObjectMapper中切换这些约定的具体方法是:mapper.setPropertyNamingStrategy(PropertyNamingStrategy.*);

慕慕森

您可以针对不同的情况使用不同的序列化器,或者您可以创建 pojo 并@JsonProperty在需要时使用它们。例如,class A { private String disclaimerConfirmed;}class AkebabCase {   @JsonProperty("disclaimer-confirmed")   private String disclaimerConfirmed;}因此,如果您想序列化为 kebab-case,您可以使用转换器进行转换A,AkebabCase然后进行序列化。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java