Эффективно конвертируйте JsonObject в pojo с помощью JSON-B 1.0 (например, Yasson, Java EE 8)

JsonObject может быть преобразован в соответствующий ему экземпляр класса с помощью:

Pojo pojo = JsonbBuilder.create().fromJson(jsonObject.toString(), Pojo.class)

Тем не менее, кажется, неэффективно использовать jsonObject.toString() as String - это другое промежуточное представление, которое содержит ту же информацию. Мне нужно преобразовать jsonObject до привязки объекта. Так есть ли более эффективный способ добиться привязки с помощью JsonObject?

(Обратите внимание, что я хочу реализовать стандарты Java EE 8, поэтому Gson и Jackson - не вариант, но могут быть концепции этого). В настоящее время в группе Яссона нет ответа, так что, надеюсь, кто-то найдет это. Майкл Шнелл также предложил связывание JsonStructure, но пока еще нет решения.

1 ответ

Решение

В стандарте JSON-B 1.0 невозможно преобразовать объект JSON-P <-> POJO. Тем не менее, достаточно людей просили об этом, что мы обязательно рассмотрим следующую версию JSON-B.

В то же время, преобразование в строку или использование специального адаптера является вашим лучшим вариантом.

Если вас беспокоит производительность с JSON-B, то, что вы можете сделать, чтобы улучшить производительность JSON-B, это кэшировать экземпляр Jsonbа именно, не звоните JsonbBuilder.create() каждый раз, когда вам нужно позвонить в / из Json, потому что все сканирование аннотаций и анализ класса происходит при создании Jsonb пример.

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