Как я должен читать JSON с пронумерованным объектом? - PullRequest
0 голосов
/ 22 сентября 2019

Я хочу прочитать этот JSON, используя Джексона в Java:

{
  "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 Ответ

0 голосов
/ 22 сентября 2019

Если вам нужно List<Node>, используйте

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

То же самое для категорий:

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

Посмотрите JSON Arrays .Текущий json отображается на следующий POJO, потому что вы используете json Objects вместо Arrays:

@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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...