java这么获取树状Json里面的某一层
时间: 2023-12-14 20:36:03 浏览: 128
java将list转为树形结构的方法(后台和前台)
可以使用Java中的JsonPath库来获取树状Json里面的某一层。以下是一个示例代码:
首先,我们需要导入JsonPath库:
```java
import com.jayway.jsonpath.JsonPath;
```
然后,我们可以使用JsonPath.compile()方法来编译JsonPath表达式,并使用read()方法来获取Json数据中的某一层。例如,如果我们的Json数据如下所示:
```json
{
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"zip": "12345"
}
}
```
我们可以使用以下代码来获取"address"层:
```java
String json = "{\"name\":\"John\",\"age\":30,\"address\":{\"street\":\"123 Main St\",\"city\":\"Anytown\",\"state\":\"CA\",\"zip\":\"12345\"}}";
Object document = Configuration.defaultConfiguration().jsonProvider().parse(json);
List<Map<String, Object>> addresses = JsonPath.read(document, "$.address");
```
其中,"$"表示根节点,".address"表示获取根节点下的"address"对象。返回结果为一个List,其中每个元素都是一个Map对象,表示"address"对象的属性和值。在本例中,返回结果为:
```json
[
{
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"zip": "12345"
}
]
```
如果需要获取更深层级的数据,可以在JsonPath表达式中使用"."或"[]"来访问子节点。例如,要获取"address"对象下的"city"属性,可以使用以下代码:
```java
String city = JsonPath.read(document, "$.address.city");
```
返回结果为:"Anytown"。
阅读全文