Если какой-либо способ динамического добавления полей в класс зависит от значений из JSON?

Я пытаюсь прочитать файл Json с помощью Jackson и, в зависимости от этого, сделать еще один вывод Json. Проблема в том, чтобы прочитать файл Json, я создал объект POJO с полями, которые представлены в Json. Но это могло измениться, и могли появиться другие значения, которые я не представлял в POJO. Итак, моя логика заключается в добавлении полей в зависимости от значений чтения, которые я получил от Json. Есть ли способ сделать это, или я пошла не по пути ..

public String makeOutput() {

        Collection<String> key = map.get("POJO");

        for (String name : key) {

            requestOut = mock.reflect(CAPM.class)
                    .field("name", "Anna")
                    .field("age", 12)

// there is field 'name', that didn't represent in POJO

                    .field(name, "Green")
                    .map(gson::toJson)
                    .val();

        }

        return requestOut;
    }

Я использую mockNeat lib. для создания Json. "карта" - это MultiValuedMap<String, String>

Чтобы узнать, какие поля находятся в файле JSON, сначала загрузите содержимое файла в карту (Конвертировать json в карту подробно описывает, как это можно сделать), а затем переберите карту и создайте объект requestOut, как в вашем примере

user10386912 29.11.2018 14:50

@ValentinCarnu Это не помогает. Прочитать Json и посмотреть, какие там поля, нетрудно. Если я возьму из него поле, оно не представлено в классе JavaBean - работать не должно.

Spike Johnson 30.11.2018 10:15

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

user10386912 30.11.2018 12:15
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
159
0

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