在Java中使用JsonPath添加嵌套值

时间:2016-08-05 11:29:02

标签: java json jsonpath

我在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,然后我得到与之前相同的结果。有没有办法解决这个问题,还是我必须自己实现嵌套添加?

0 个答案:

没有答案