有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

json在Java中使用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,第二次我得到的结果和以前一样。有没有办法解决这个问题,或者我必须自己实现嵌套的add


共 (0) 个答案