Десериализация списка объектов JSON, имеющих идентификатор объекта в качестве имени объекта - PullRequest
0 голосов
/ 04 ноября 2018

Итак, у меня есть этот интересный Json из Nest API, который мне нужно проанализировать, но у меня возникли трудности. Очевидно, я не могу контролировать JSON.

{
    "uyuyuyuuyieiehuhuhuhenne": {
        "name": "Cabin",
        "country_code": "US",
        "postal_code": "94304",
        "time_zone": "America/Los_Angeles",
        "away": "home",
        "structure_id": "uyuyuyuuyieiehuhuhuhenne"
    },
    "ryryryyryryyryrryyryryyr": {
        "name": "Boulder Home",
        "country_code": "US",
        "postal_code": "80302",
        "time_zone": "America/Denver",
        "away": "away",
        "structure_id": "ryryryyryryyryrryyryryyr"
    }
}

Имена объектов - это идентификаторы объекта. У меня есть объект, который называется структура, который содержит список, но я не получаю ничего при преобразовании структуры.

1 Ответ

0 голосов
/ 04 ноября 2018

Предполагая, что у вас есть POJO, как:

@Getter
public class Structure {
    private String name;
    private String country_code;
    private String postal_code;
    private String time_zone;
    private String away;
    private String structure_id;
}

вы можете десериализовать этот JSON в Map, используя Gson TypeToken, например:

Type t = new TypeToken<Map<String, Structure>>() {}.getType();
Map<String, Structure> map = new Gson().fromJson(JSON, t);

Другими словами, ваш JSON - это карта Structure с каждым Structure s structure_id в качестве ключа.

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