Я пытаюсь прочитать файл 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>
@ValentinCarnu Это не помогает. Прочитать Json и посмотреть, какие там поля, нетрудно. Если я возьму из него поле, оно не представлено в классе JavaBean - работать не должно.
Чтобы динамически добавлять поля в класс, вам нужно будет использовать библиотеки инструментовки байтового кода, здесь - некоторые детали.




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