我应该将 json 字符串解析为 json 对象还是直接操作字符串

Hun*_*orn 6 java string json jackson

通常我将 json 字符串解析为 json 对象,而不是直接操作 json 字符串。例如,像这样的 json 字符串

{"number": "1234567"}

Run Code Online (Sandbox Code Playgroud)

如果我必须在末尾添加 000

...
{...,"number" : "1234567000",...}
....
Run Code Online (Sandbox Code Playgroud)

我将使用 jackson 将其解析为 Json 对象或 POJO

我了解 Json 对象或 POJO 的可读性透视解析要好得多,但我对性能感到好奇。在这种情况下,如果我直接操作json字符串,我必须使用正则表达式提取数字属性,并在末尾添加000,如果数据很多,这比解析为Json对象要昂贵得多?因为字符串对象基本上创建了一个新的字符串对象?

编辑:基于@Itai Steinherz的链接,我还在JS中做了一个基准,它显示json解析更好 https://jsbench.me/93jr1w6k5b/1

Ita*_*erz 0

由于我对 Java 中的 JSON 解析/操作不太熟悉,因此我将比较 JavaScript 中的相同操作(我对此更有经验)。

将使用基本正则表达式与.replace使用JSON.parse&进行比较JSON.stringify,结果是使用速度JSON.parse慢了一小部分(准确地说是 4.37%)。

但是,我认为性能增益不值得,而且我总是会选择更具可读性和可维护性的代码(方法JSON.parse),而不是更高性能的代码(.replace方法)。

请参阅我在此处使用的完整基准测试。