将属性插入JSON字符串而不进行解析

时间:2018-07-05 13:04:16

标签: java json jackson

我有一个JSON字符串,我想向其中注入一个字段,最好不必解析JSON。有什么好的方法可以做到这一点?主要优先考虑的是性能。

我可以想到的实现此目的的方法:

  1. 检查第一个非空白字符为{,然后在字符串中直接插入"myField":"myValue",。如果JSON已经包含"myField"或数据没有属性,则会出现问题。
  2. 解析JSON树并正常插入值。容易检查现有 myField属性,但选择较慢。

有什么我没想到的方法吗?可能是Jackson特定的解决方案?

1 个答案:

答案 0 :(得分:0)

使用Jackson来操作JSON文档不会对性能产生太大影响。只需使用Jackson树模型解析JSON文档:

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

执行操作,然后将树写回JSON。


  

首要任务是性能。

根据premature optimization is the root of all evil,Donald Knuth。这意味着在没有可衡量的性能问题的情况下,您不应该优化性能,因为您认为将会获得性能提升。

可以执行一些明显的优化,但是在可以度量之前,应避免任何并非显而易见的优化。