возражать здесь

я есть ниже JSON и из которого мне нужно сделатьMap<String, String>, В приведенном ниже JSON у меня есть только три уровняparentCategory но в целом это может быть больше, а иногда и меньше.

Ключ моей карты будет79720 которыйid изcategories раздел и значение должны быть10987 которыйid из последнихparentCategory.

Теперь я могу быть вложеннымparentCategory внутри них, поэтому у меня есть проблемы, делающие POJO для этого. Я могу иметь один уровеньparentCategory или я могу быть вложеннымparentCategory внутри каждогоparentCategory и мне всегда нужно получить идентификатор для последнегоparentCategory.

Поэтому я создаю POJO для этого, перейдя вjsonschema2pojo и предоставил мой JSON, где он сгенерировал мне все файлы, которые мне нужны. С JSON ниже, он создал три класса, как этоParentCategory, ParentCategory_ а такжеParentCategory__ заparentCategory поле. Теперь, так как я не знаю, сколькоparentCategory У меня есть уровни, поэтому я не уверен, что это лучший способ для создания POJO для них и извлечьid поле для последнегоparentCategory, Есть ли способ сделать это с помощью Джексона?

Я должен прочитать все эти данные в POJO, так как я также читаю все остальные поля.

{
    "paginationResponse": {
        "pageNumber": 1,
        "entriesPerPage": 200,
        "totalPages": 3
    },
    "listings": [
        {
            "categories": [
                {
                    "id": "79720",
                    "name": "Sunglasses",
                    "localizedName": "Sunglasses",
                    "level": 4,
                    "leafCategory": true,
                    "parentCategory": {
                        "id": "394",
                        "name": "Sunglasses & Fashion Eyewear",
                        "localizedName": "Sunglasses & Fashion Eyewear",
                        "level": 3,
                        "leafCategory": false,
                        "parentCategory": {
                            "id": "2340",
                            "name": "Men's Accessories",
                            "localizedName": "Men's Accessories",
                            "level": 2,
                            "leafCategory": false,
                            "parentCategory": {
                                "id": "10987",
                                "name": "Clothing, Shoes & Accessories",
                                "localizedName": "Clothing, Shoes & Accessories",
                                "level": 1,
                                "leafCategory": false
                            }
                        }
                    }
                }
            ],
            "processlisting": {
                ....
            },
            "processlistingmetainfo": {
                ...
            },
            "processlistingproperties": [
                {
                    "propertyName": "item_url",
                    "propertyValues": [
                        {
                            "stringValue": "url"
                        }
                    ]
                },
                {
                    "propertyName": "listing_site_id",
                    "propertyValues": [
                        {
                            "stringValue": "0"
                        }
                    ]
                }
            ]
        }
    ],
    "total": 100
}

Примечание. У меня нет контроля над этой структурой JSON, поскольку она не принадлежит нам, поэтому я не могу изменить структуру JSON вообще.

Ниже приведены три класса дляParentCategory который был сгенерирован на основе выше JSON, но в целом я могу иметь несколько уровнейParentCategory и я не знаю заранее.

public class ParentCategory {
    @JsonProperty("id")
    private String id;
    @JsonProperty("name")
    private String name;
    @JsonProperty("localizedName")
    private String localizedName;
    @JsonProperty("level")
    private long level;
    @JsonProperty("leafCategory")
    private boolean leafCategory;
    @JsonProperty("parentCategory")
    private ParentCategory_ parentCategory;
    @JsonIgnore
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();

    ....

}

public class ParentCategory_ {
    @JsonProperty("id")
    private String id;
    @JsonProperty("name")
    private String name;
    @JsonProperty("localizedName")
    private String localizedName;
    @JsonProperty("level")
    private long level;
    @JsonProperty("leafCategory")
    private boolean leafCategory;
    @JsonProperty("parentCategory")
    private ParentCategory__ parentCategory;
    @JsonIgnore
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();

    ...

}


public class ParentCategory__ {
    @JsonProperty("id")
    private String id;
    @JsonProperty("name")
    private String name;
    @JsonProperty("localizedName")
    private String localizedName;
    @JsonProperty("level")
    private long level;
    @JsonProperty("leafCategory")
    private boolean leafCategory;
    @JsonIgnore
    private Map<String, Object> additionalProperties = new HashMap<String, Object>();

    ...

}

Ответы на вопрос(1)

Ваш ответ на вопрос