Java 如何使用枚举对象读取JSON?
我想在Java中使用Jackson阅读JSON:Java 如何使用枚举对象读取JSON?,java,json,jackson,Java,Json,Jackson,我想在Java中使用Jackson阅读JSON: { "node1": { "id": "123", "categories": { "category1": { ... }, "category2": { ... } <next category> } }, "node2": { "id": "456",
{
"node1":
{
"id": "123",
"categories":
{
"category1":
{
...
},
"category2":
{
...
}
<next category>
}
},
"node2":
{
"id": "456",
"categories":
{
"category1":
{
...
},
<next category>
}
}
<next node>
...
}
{
“节点1”:
{
“id”:“123”,
“类别”:
{
“类别1”:
{
...
},
“类别2”:
{
...
}
}
},
“节点2”:
{
“id”:“456”,
“类别”:
{
“类别1”:
{
...
},
}
}
...
}
如何读取JSON?
我应该使用列表还是地图?
我的Java对象应该是什么样子
当我试图将JSON读取到包含列表节点的对象时,它抛出异常:
无法识别的字段“node1”如果需要列表
使用
{ [ "node1": {}, "node2": {}... ] ...}
类别也是如此:
[ {"category1": {...}}, {"category2": {...}} ]
看一看。
当前json映射到以下POJO,因为您使用json对象而不是数组:
@JsonInclude(JsonInclude.Include.NON_NULL)
public class NodeContainer {
@JsonProperty("node1")
private Node node;
@JsonProperty("node2")
private Node node2;
@JsonProperty("node1")
public Node getNode() {
return node;
}
@JsonProperty("node1")
public void setNode(Node node) {
this.node = node;
}
@JsonProperty("node2")
public Node getNode2() {
return node2;
}
@JsonProperty("node2")
public void setNode2(Node node2) {
this.node2 = node2;
}
}
你应该联系那个JSON的提供者,让他去掉nodeX
键,使用数组JSON数组,所以在这里发布之前,你应该先检查一下它们,而不是{key1:{},key2:{}
。