我正在使用jackson反序列化json數據。我正在使用objectmapper來反序列化數據,並希望忽略使用mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Jackson JSON lib如何指定要反序列化的元素的開始
是否有方法在傑克遜指定我想要反序列化的元素的開始?我的JSON數據有更多的元素,但我只對一些元素進行反序列化。
我正在使用jackson反序列化json數據。我正在使用objectmapper來反序列化數據,並希望忽略使用mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Jackson JSON lib如何指定要反序列化的元素的開始
是否有方法在傑克遜指定我想要反序列化的元素的開始?我的JSON數據有更多的元素,但我只對一些元素進行反序列化。
對象結構必須匹配JSON結構,因此如果需要的話,通常只使用包裝類是最方便的。喜歡的東西:
class Response {
public Thing value;
}
class Thing {
public String name;
}
所以即使你只是想「名」,你會做這樣的事情:
Response resp = mapper.readValue(jsonInput, Response.class);
String name = response.value.name;
如果是這樣,你可以省略定義屬性你不關心;或者定義它們而不使用。
JAXB支持XPath表達式,通過@XmlPath(...)
將元素映射到類。
不確定您是否可以跳過根元素,但是對於嵌套,您可以使用@XmlPath(".")
使屬性內聯。
不確定是否傑克遜支持,但EclipeLink JAXB呢。
它不必與結構匹配。您可以忽略json中存在但未在類中存在的未知屬性:http://jackson.codehaus.org/1.6.3/javadoc/org/codehaus/jackson/annotate/JsonIgnoreProperties.html – Ghokun 2014-12-11 06:40:44