2012-03-23 109 views
0

序列化POJO时使用杰克逊的WRAP_ROOT_VALUE序列设置和序列化POJO应用的命名策略,以一个类名,类名被用作串行化JSON根值。与杰克逊

mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true); 

问题 - 如何将命名策略应用于类名?我想在类名转换成别的东西。

回答

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" 
    } 
}