我在Java中使用JsonPath,我想知道是否有办法使用路径规范来添加嵌套值。以下示例将澄清。
我有这个json
{"attr1":"value1"}
因为我需要在json上工作很多,而且我不想每次都解析它(根据documentation),我按以下方式加载json
String sJson = "{\"attr1\":\"value1\"}"
Object json = Configuration.defaultConfiguration().jsonProvider().parse(sJson);
我想添加一个值,以便最终的json是
{"attr1":"value1","attr2":{"nested_attr1":"nested_value1"}}
添加attr2
以获得该结果的最佳方法是什么?有没有办法可以使用JsonPath语法(attr2.nested_value1
)?
如果我使用
Configuration.defaultConfiguration().jsonProvider().setProperty(json, "attr2.nested_attr1", "nested_value1");
我获得的是更新的json,如
{"attr1":"value1","attr2.nested_attr1":"nested_value1"}
这是因为setProperty
不适用于路径。我尝试使用
JsonPath.parse(json).put("$", "attr2.nested_attr1", "nested_value1"").jsonString();
但是我必须每次来回解析json,然后我得到与之前相同的结果。有没有办法解决这个问题,还是我必须自己实现嵌套添加?