Конвертация из одного класса в другой используя JSON Ӏ 3304

  • 14
  • Недоступна
НЕОБХОДИМО: подключенные библиотеки Jackson Core, Bind и Annotation версии 2.6.1 Два класса имеют одинаковые поля, но не имеют общий суперкласс. Пример, классы First и Second. Реализовать логику метода convertOneToAnother, который должен возвращать объект класса resultClassObject, значения полей ко
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (82)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Andrey P
Уровень 35, Новосибирск, Казахстан
8 октября, 17:17
Сходу сериализовал ->replace-> обратно десериализовал. Валидатор не принимал. Делаю тестовые классы
First first = new First();
        first.i = 1;
        first.name = "first";
        Second second = new Second();
        second.i = 2;
        second.name = "second";
и понимаю, что нужно делать через replaceFirst, потому что название класса может быть и в значениях
Антон
Уровень 27, Москва, Россия
10 сентября, 08:32
Хорошая задачка!
Waumok Работает в аду
29 августа, 18:06
Решение в две строки
Е К
Уровень 41, Краснодар, Россия
10 июня, 13:07
replace() валя отверг. Видимо потому, что в JSON объекте могут быть ещё названия или значения полей совпадающие с именем класса. replaceFirst() -> успешно схавал
Е К
Уровень 41, Краснодар, Россия
10 июня, 13:09
Но как ниже говорят - наколхозил))
Любовь
Уровень 33, Санкт-Петербург
20 апреля, 09:41
Я просто не понимаю в чём вообще суть задачи....
Anonymous #2631266
Уровень 41, Одесса
19 мая, 14:12
Сначала пишешь объект первого класса. Получится строка, в которой указано classname:first Надо заменить на имя результирующего класса. И читать из нее объект второго.
Серж
Уровень 32, Омск, Россия
18 апреля, 04:08
закомментил аннотации, для примера инициализировал поля у First класса, в psvm вывел в консоль имя и i, результат правильный(у второго - значения первого), но валик не принял. итого суть именно в нахождении метода маппера - как отключить аннотации!
Артур Прохоренко
Уровень 28, Гомель, Белоруссия
14 февраля, 17:57
Не смог найти, но точно знаю, что можно и без отключения аннотаций и без парсинга строки решить. Через ObjectNode или JSONObject можно получить доступ к полям объекта и менять их с помощью put и т.д. Не нашел пока материалов, если кто-то знает этот способ - пожалуйста прикрепите ссылку на ресурс. На https://www.baeldung.com/ много всего, но до этого не дошел пока. Заранее спасибо!
Артур Прохоренко
Уровень 28, Гомель, Белоруссия
14 февраля, 07:06
Пример с отключением аннотаций jackson_annotations_disable
Лёхансан Junior Java Developer в Senla
25 декабря 2020, 19:50
Решил с помощью метода
mapper.disable(MapperFeature.USE_ANNOTATIONS);
Теперь меня не покидает мысль: а если просто удалить ненужные аннотации - валидатор примет решение?
Сергеев Алексей
Уровень 28, Москва, Россия
8 февраля, 17:48
Вообще заработает, но валидатор такой исход событий не устраивает....
Евгений
Уровень 37, Коряжма, Россия
12 ноября 2020, 18:52
Где-то в недрах автора этой задачи злобно гогочет джаваскриптизер...