我必须将我的json从camelCase转换为kebab-case。
示例:
My Json:
{
"disclaimerConfirmed" : true
}
我需要:
{
"disclaimer-confirmed" : true
}
我不能使用@JsonProperty,因为它将其重命名为永久属性。我正在寻找会消耗Json(可以作为String)并返回修改后的json(作为String)的东西。
答案 0 :(得分:0)
您可以针对不同情况使用不同的序列化器,也可以使用@JsonProperty
创建pojo并在需要的地方使用它们。
例如,
class A {
private String disclaimerConfirmed;
}
class AkebabCase {
@JsonProperty("disclaimer-confirmed")
private String disclaimerConfirmed;
}
因此,如果要序列化为kebab-case,可以使用转换器将A
转换为AkebabCase
,然后序列化。
答案 1 :(得分:0)
Jackson支持命名策略,因此您可以读取输入的String进行映射(使用camelCase策略),然后将映射写回到String(使用kebab-case,它本身受支持);
您需要在没有注释的情况下在ObjectMapper中切换这些约定的特定方法是:
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.*);