【发布时间】:2020-06-22 13:26:02
【问题描述】:
我正在尝试向路径添加一个索引值:
$.data.library.category[2].book 使用 jayway jsonpath 跟随 Json,
"data":{
"library":{
"class":"CRED",
"category":[{
"book":"java 2.0"
},
{
"book":"java 3.0"
}]
}
但我没有在结果 json 中得到更新的响应。
我的java代码:
Configuration conf = Configuration.defaultConfiguration().addOptions(Option.DEFAULT_PATH_LEAF_TO_NULL).addOptions(Option.SUPPRESS_EXCEPTIONS);
DocumentContext documentContext = JsonPath.using(conf).parse(sampleJson);
documentContext.set(JsonPath.compile("$.data.library.category[2].book"), "java 3.0");
我也检查了documentContext.add。什么都解决不了。由于数组有 0 和 1 索引,我可以通过 JsonPath 更新那里的值。但它没有第二个索引,所以没有更新。但我需要根据 jsonpath 在给定 json 的最后一个插入新索引。
【问题讨论】:
-
我认为 JsonParser 使用 LIST 作为 JSON 数组的后端。所以你必须使用 .get(index)。
标签: java json jackson jsonpath json-path-expression