Разбор Джексона для объекта json внутри json

У меня есть образец данных JSON, как показано ниже

{"Данные":{"определение":[{"категория": "здание", "координата":{"Xmin": "0,31","Ymin": "0,42","уты": "0,82"," Xmax ":" 0,89"}," точность ":" 0,66"}]}}

Попытка разобрать поле данных в парсере Джексона и создать класс ObjectCategories (метод получения сеттера) для его значений.

@JsonProperty("categories")
private List<ObjectCategory> categories;

@SuppressWarnings("unchecked")
@JsonProperty(DATA)
private void unpackNested(Map<String,Object> data) {
    this.categories = (ArrayList<ObjectCategory>) data.get("detection");
}

Если мы выполним приведенный выше код, получим это исключение - getCategories (). Get(0).getAccuracy() в java.util.LinkedHashMap не может быть приведен к ObjectCategory.

getCategories().get(0) возвращает значение карты. Как разобрать с моим классом ObjectCategory.

1 ответ

Решение

Вы можете преобразовать значение, если вы первоначально десериализовали его на карту.

this.categories = objectMapper
     .convertValue(data.get("detection"), 
                   new TypeReference<List<ObjectCategory>>() {});
Другие вопросы по тегам