使用Jackson的WRAP_ROOT_VALUE序列化设置并序列化POJO时,类名将用作序列化JSON中的根值。
mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
问题 - 如何将命名策略应用于班级名称?我想将类名转换为其他名称。
答案 0 :(得分:0)
我这样做的方法是使用@JsonRootName
注释,如:
@JsonRootName( value = "smsMessageRequest" )
public class TextMessage {
private String message;
private String address;
}
public static String toJson(Object object) throws IOException {
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(JsonMethod.FIELD, Visibility.ANY);
mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(object);
}
产生了:
{
"smsMessageRequest" : {
"message" : "abc",
"address" : "123"
}
}