我正在使用jackson反序列化json数据。我使用objectmapper来反序列化数据,并希望使用mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
杰克逊有没有办法指定我要反序列化的元素的开头?我的JSON数据中有更多的元素,但我只对一些要反序列化的元素感兴趣。
答案 0 :(得分:1)
对象结构必须与JSON结构相匹配,因此通常在必要时使用包装类是最方便的。类似的东西:
class Response {
public Thing value;
}
class Thing {
public String name;
}
所以即使你只是想要“名字”,你也可以这样做:
Response resp = mapper.readValue(jsonInput, Response.class);
String name = response.value.name;
如果是这样,您可以省略您不关心的定义属性;或者定义它们而不是使用它们。
答案 1 :(得分:0)
JAXB支持XPath表达式,通过@XmlPath(...)
将元素映射到类。
不确定是否可以跳过根元素,但对于嵌套,您可以使用@XmlPath(".")
内联属性。
不确定Jackson是否支持,但EclipeLink JAXB确实支持。