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

时间:2019-01-17 15:03:23

标签: java json string jackson

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

这样的json字符串
{"number": "1234567"}

如果我必须在末尾添加000

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

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

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

编辑: 基于@Itai Steinherz的链接,我也在JS中建立了基准,它表明json解析更好 https://jsbench.me/93jr1w6k5b/1

1 个答案:

答案 0 :(得分:0)

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

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

但是,我认为性能提升是不值得的,我将始终使用更具可读性和可维护性的代码(JSON.parse方法)而不是性能更高的(.replace方法)。

请参阅我使用的here完整基准。