Должен ли я анализировать строку json для объекта json или напрямую управлять строкой - PullRequest
0 голосов
/ 17 января 2019

обычно я анализирую строку json для объекта json вместо непосредственного манипулирования строкой json. например, строка json, такая как

{"number": "1234567"}

если мне нужно добавить 000 в конце

...
{...,"number" : "1234567000",...}
....

Я буду использовать Джексона, или разобрать его как Json Object или POJO

Я понимаю, что анализ перспективы читабельности для объекта Json или POJO намного лучше, но мне интересно узнать производительность. В этом случае, если я манипулирую строкой json напрямую, мне нужно использовать regex для извлечения атрибута number и добавить 000 в конце, что намного дороже, чем анализ Json Object при наличии большого количества данных? потому что строковый объект в основном создает новый строковый объект?

EDIT : На основе ссылки @Itai Steinherz я также делаю тест в JS, и это показывает, что анализ json лучше https://jsbench.me/93jr1w6k5b/1

1 Ответ

0 голосов
/ 17 января 2019

Поскольку я не очень хорошо разбираюсь в синтаксическом анализе / манипулировании JSON в Java, я буду сравнивать те же операции в JavaScript (в которых я более опытен).

Сравнение с использованием базового регулярного выражения с .replace и использованием JSON.parse & JSON.stringify приводит к тому, что при использовании JSON.parse медленнее на небольшой процент (точнее 4,37%).

Однако я не думаю, что выигрыш в производительности того стоит, и я бы всегда использовал более читаемый и поддерживаемый код (подход JSON.parse), а не более производительный (подход .replace).

Смотрите полный тест, который я использовал здесь .

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