Развернуть внутренний объект json с помощью Джексона

У меня есть JSON, который выглядит так

{
    "file": "sample.txt",
    "valid": "true",
    "parameters": {
         "size": "15kb",
         "charset": "UTF-8",
         ....
    }
}

Но я хочу десериализовать его как единый объект. Не так

class ValidatedFile {
    String file;
    boolean valid;
    FileParameters params;
}

а вот так

class ValidatedFile {
    String file;
    boolean valid;
    String size;
    String charset;
    ....
}

Мне нужно как-то развернуть этот объект. Как это сделать с помощью jackson?

любые параметры, которые вы написали в классе модели FileParameters, вместо того, чтобы писать туда, пишите в классе Validate File.

Tejal 25.12.2018 10:07
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
317
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте @JsonProperty("parameters"):

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.Map;

public class Product {

    String file;
    boolean valid;
    String size;
    String charset;



    @JsonProperty("parameters")
    private void unpackNested(Map<String,Object> parameters) {
        this.size = (String)parameters.get("size");
        this.charset = (String)parameters.get("charset");
    }

}

Другое подходы.

@SuppressWarnings("unchecked") не нужен
user7294900 25.12.2018 10:10

Другие вопросы по теме