Java提取多层级的json值
时间: 2023-07-30 17:08:06 浏览: 61
可以使用JsonPath库来提取多层级的JSON值。以下是一个使用JsonPath库的示例代码:
```java
String jsonStr = "{\"person\":{\"name\":\"John\",\"age\":30,\"address\":{\"city\":\"New York\",\"state\":\"NY\"}}}";
DocumentContext jsonContext = JsonPath.parse(jsonStr);
String name = jsonContext.read("$.person.name"); // John
int age = jsonContext.read("$.person.age"); // 30
String city = jsonContext.read("$.person.address.city"); // New York
String state = jsonContext.read("$.person.address.state"); // NY
```
在上面的代码中,我们首先定义了一个包含多层级JSON值的字符串。然后,我们使用JsonPath.parse()方法将其转换为可操作的JsonPath对象。接下来,我们使用JsonPath的read()方法来提取JSON值。在这个例子中,我们提取了“name”、“age”、“city”和“state”四个值。
在read()方法中,我们使用$来指定JSON对象的根路径,然后使用点号(.)来指定子对象,使用方括号([])来指定数组索引。例如,“$.person.name”表示从根对象开始,依次访问“person”对象和“name”属性。
相关推荐
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)