json获取多级java_如何优雅的给多层级JSON最深处的key赋值
时间: 2024-01-26 11:03:05 浏览: 69
在Java中,可以使用JsonPath库来优雅地给多层级JSON最深处的key赋值。
以下是一个使用JsonPath库给多层级JSON最深处的key赋值的示例代码:
```java
import com.jayway.jsonpath.DocumentContext;
import com.jayway.jsonpath.JsonPath;
public class JsonPathExample {
public static void main(String[] args) {
String json = "{ \"person\": { \"name\": { \"first\": \"John\", \"last\": \"Doe\" }, \"age\": 30 } }";
DocumentContext context = JsonPath.parse(json);
context.set("$..last", "Smith");
String updatedJson = context.jsonString();
System.out.println(updatedJson);
}
}
```
在上面的代码中,我们使用JsonPath库来解析JSON字符串并给最深处的key赋值。在这个例子中,我们想要给“last”字段赋值“Smith”,它位于嵌套的JSON中。为了实现这个目标,我们使用了JsonPath表达式“$..last”,其中“$”表示根节点,“..”表示递归搜索,而“last”表示我们想要赋值的字段名。最终,我们使用DocumentContext对象的set()方法来给该字段赋值,并使用jsonString()方法获取更新后的JSON字符串。
值得注意的是,JsonPath库还支持更复杂的表达式,例如过滤器、函数等等。因此,如果您需要更高级的功能,您可以查看JsonPath库的文档以获取更多信息。
阅读全文