我是杰克逊主题的新手,我没有找到任何可以帮助我解决问题的答案。
让我们假设我有这个课:
public class Airport {
private String name;
private String code;
...
}
我的json看起来像这样:
"XXX": {
"name": "SomeName",
}
我想强迫杰克逊把XXX
(树的根)放到班级的code
财产中。我用来从JSON创建对象的标准方法是使用treeToValue
:
ObjectMapper mapper = new ObjectMapper();
String airports = "above Json";
JsonNode airportsTree = mapper.readTree(airports.toString());
Airport airport = mapper.treeToValue(airportsTree, Airport.class);
然而,当我启用DeserializationFeature.UNWRAP_ROOT_VALUE
时,我正在
JsonMappingException:根名称'XXX'与类型[simple type,class com.fasterxml.jackson.databind.JsonNode]
的预期('JsonNode')不匹配
答案 0 :(得分:0)
你需要为杰克逊提出root name
提示
@JsonRootName(value = "XXX")
public class Airport {
private String name;
private String code;
...
}
启用DeserializationFeature.UNWRAP_ROOT_VALUE
时,它必须正常工作