сопоставление JSON и Java POJO (Джексон) - PullRequest
1 голос
/ 08 ноября 2019

Я использую JAVA Джексон для сопоставления JSON с объектами JAVA pojo, мой файл JSON:

[
  [
    {
      "name": "tetragrammatonList_stocks_headerColumn_amountStoreOther",
      "id": "amountStoreOther"
    },
    {
      "name": "tetragrammatonList_stocks_headerColumn_article.articleSubGroup.name",
      "id": "article.articleSubGroup.name"
    },
    .....
    {
      "name": "tetragrammatonList_stocks_headerColumn_article.producer.name",
      "id": "article.producer.name"
    }
  ],
  [
    {
      "name": "tetragrammatonList_stocks_headerColumn_articleEANs",
      "id": "articleEANs"
    },
    {
      "name": "tetragrammatonList_stocks_headerColumn_article.plu",
      "id": "article.plu"
    },
    {
      "name": "tetragrammatonList_stocks_headerColumn_article.name",
      "id": "article.name"
    },
    .....
    {
      "name": "tetragrammatonList_stocks_headerColumn_article.producer.name",
      "id": "article.producer.name"
    }
  ]
]

и после readValue у меня появляется это сообщение об ошибке:

Невозможно десериализовать экземпляр.... из токена START_ARRAY

мои классы POJO:

public class A
    {
        private String name;
        private String id;
        +get/set methods
    }

    public class B
    {
        private String name;
        private String id;
        +get/set methods
    }

    public class Root
    {
        private List<A> a;
        private List<B> b;
        +get/set methods
    }

Root root = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).readValue(jsonString, Root.class);

пожалуйста, каковы правильные java pojos для этого формата JSON? спасибо.

1 Ответ

1 голос
/ 08 ноября 2019
@Getter
@Setter
public class Root
    {
        private List<A> a;
    }
@Getter
@Setter
private class A
    {
        private String name;
        private String id;
    }
ObjectMapper mapper = new ObjectMapper();
List <Root> rt = mapper.readValue(json, List.class);

Попробуйте это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...