有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何读取带有枚举对象的JSON?

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

{
  "node1":
  {
    "id": "123",
    "categories":
    {
      "category1":
      {
        ...
      },
      "category2":
      {
        ...
      }
      <next category>
    }
  },

  "node2":
  {
    "id": "456",
    "categories":
    {
      "category1":
      {
        ...
      },
      <next category>
    }
  }

  <next node>
  ...
}

如何读取JSON? 我应该使用列表还是地图? 我的Java对象应该是什么样子

当我试图将JSON读取到包含List<Node> node的对象时,它抛出异常: 无法识别的字段“node1”


共 (1) 个答案

  1. # 1 楼答案

    如果你需要List<Node>使用

    { [ "node1": {}, "node2": {}... ] ...}
    

    类别也是一样:

    [ {"category1": {...}}, {"category2": {...}} ]
    

    看看JSON Arrays。 当前的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;
        }
    }