Вставить свойство в строку JSON без разбора - PullRequest
0 голосов
/ 05 июля 2018

У меня есть строка JSON, и я хочу вставить в нее одно поле, желательно без разбора JSON. Каковы хорошие способы сделать это? Основным приоритетом является производительность.

Возможные способы сделать это, о которых я могу подумать:

  1. Убедитесь, что первым непустым символом является {, вставьте "myField":"myValue", сразу после него в строке. Проблема, если JSON уже содержит "myField" или данные не имеют свойств.
  2. Разобрать дерево JSON и вставить значение нормально. Легко проверить на наличие myField свойство, но более медленный выбор.

Есть какой-то способ, о котором я не подумала? Возможно, решение от Джексона?

1 Ответ

0 голосов
/ 05 июля 2018

Управление документом JSON с Джексоном не должно сильно влиять на производительность. Просто проанализируйте документ JSON, используя модель дерева Джексона:

ObjectMapper mapper = new ObjectMapper();
JsonNode tree = mapper.readTree(json);

Выполните ваши манипуляции, а затем запишите дерево обратно в JSON.


Основным приоритетом является производительность.

Согласно Дональду Кнуту, преждевременная оптимизация - корень всего зла . Это означает, что при отсутствии измеренных проблем с производительностью вам не следует оптимизировать, поскольку вы думаете, вы получите повышение производительности.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...