Разбор Джексона для объекта 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>>() {});