以下是我的班级
class Feed {
Long id;
String title;
String text;
Short type;
Object object;
}
Feed.object
可以是基于Feed.type
的任何类型。当我将班级文档上传到elasticsearch
时,每件事情都可以正常工作,但是,当提取文档时,org.codehaus.jackson.map.ObjectMapper
会转换Feed.object
中的LinkedHashMap
。有没有办法获得实际的对象?我得到的JSON字符串是Feed。
以下是转换:
Feed feed = mapper.readValue(response.getHits().getHits()[0].getSourceAsString(), Feed.class);
答案 0 :(得分:1)
您可以根据@JsonTypeInfo
课程中class
的值,使用object
来指明type
Feed
的内容。例如,
class Feed {
Long id;
String title;
String text;
Short type;
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXTERNAL_POPERTY, propery = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = Foo.class, name = "1"),
@JsonSubTypes.Type(value = Bar.class, name = "2")
})
Object object;
}