通常我将一个 json 字符串解析为 json 对象,而不是直接操作 json 字符串。例如,像这样的 json 字符串
{"number": "1234567"}
如果我必须在末尾添加000
...
{...,"number" : "1234567000",...}
....
我将使用 jackson 将其解析为 Json 对象或 POJO
我知道解析为 Json 对象或 POJO 的可读性透视图要好得多,但我对性能很好奇。这样的话,如果我直接操作json字符串,就得用regex提取number属性,最后加000,比数据多的时候解析成Json Object贵很多?因为字符串对象基本上创建了一个新的字符串对象?
编辑: 基于@Itai Steinherz 的链接,我也在 JS 中做了一个基准测试,它表明 json 解析更好 https://jsbench.me/93jr1w6k5b/1
最佳答案
由于我不太熟悉 Java 中的 JSON 解析/操作,所以我将比较 JavaScript 中的相同操作(我在这方面更有经验)。
比较使用带有 .replace
的基本正则表达式和使用 JSON.parse
& JSON.stringify
,结果是 使用JSON.parse
慢了一小部分(准确地说是 4.37%)。
但是,我不认为性能增益是值得的,我总是会选择更具可读性和可维护性的代码(JSON.parse
方法)而不是性能更高的代码(.replace
方法)。
查看我使用的完整基准测试 here .
关于java - 我应该将 json 字符串解析为 json 对象还是直接操作字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54238693/