Объединить строку JSON с картой с помощью Джексона без десериализации строки

Скажем, у меня есть String {"foo": "bar"} и Map Map("hello" -> "world").

Используя Джексон, как мне объединить их в String {"foo": "bar", "hello": "world"} без десериализации строки foo-bar?

Строка foo-bar поступает из другой системы (доверенной, вернет действительную строку JSON), и неэффективно десериализовать ее в Map только для того, чтобы добавить несколько свойств, а затем сериализовать обратно в String.


person wiradikusuma    schedule 13.07.2019    source источник
comment
Я думаю, что это единственный способ сделать это, Java не может понять JSON, пока он не будет проанализирован (действителен или нет). Если вы действительно не хотите анализировать ее, вы можете сериализовать карту, удалить открывающую скобку, удалить закрывающую скобку другой и объединить их запятой посередине.   -  person devgianlu    schedule 13.07.2019
comment
вместо того, чтобы выполнять конкатенацию строк, я предпочитаю десериализацию   -  person Deadpool    schedule 13.07.2019


Ответы (1)


Замените конечную скобку запятой.
Создайте строку JSON для своей карты.
Удалите начальную скобку из JSON карты.
Соедините строки.

person DwB    schedule 13.07.2019
comment
Я ожидал чего-то более элегантного, чем это. Ну что ж... :) - person wiradikusuma; 16.07.2019