我必须将 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
提交
取消