Java 如何使用枚举对象读取JSON?

Java 如何使用枚举对象读取JSON?,java,json,jackson,Java,Json,Jackson,我想在Java中使用Jackson阅读JSON: { "node1": { "id": "123", "categories": { "category1": { ... }, "category2": { ... } <next category> } }, "node2": { "id": "456",

我想在Java中使用Jackson阅读JSON:

{
  "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:{}