是否可以在同一个pojo对象中反序列化两个不同的表示,例如,当可以返回可选的翻译时。
例如,这是我的pojo:
class LightCustomer {
enum TITLE {
Mr, Mrs, Ms
}
public TITLE title;
public String titleLabel;
}
第一次可用的表示没问题:
{
"title": "Mrs"
}
我的第二个翻译代表:
{
"title": {
"value": "Mrs",
"label": "Madame"
}
}
有办法:
答案 0 :(得分:0)
您可以使用@JacksonRootName
进行第二次演示。
@JsonRootName(value = "title")
class LightCustomer {
enum TITLE {
Mr, Mrs, Ms
}
public TITLE title;
public String label;
}
使用
配置ObjectMapper实例mapper.configure(Feature.UNWRAP_ROOT_VALUE, true); //version 1.9
或
mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true); //version 2
例如,您可以使用不同的ObjectMapper实例。我不完全确定这是不是一个好主意。也许是一种更好的方法:创建自定义序列化器/反序列化器,允许两个表示由ObjectMapper的单个实例处理。