java获取多层json中的值,获取最底层的时候,知道他的最顶层是谁
时间: 2024-02-15 22:03:12 浏览: 33
可以通过递归的方式获取多层json中的值。在递归的过程中,可以记录下每一层json的key和value,直到获取到最底层的值。同时,在递归的过程中也可以记录下最顶层的key和value,以便于在最底层获取到值之后,能够知道最顶层是谁。
以下是一个示例代码,假设要获取的最底层的key为"leaf",最顶层的key为"root":
```java
public static void getValue(JSONObject json, String topKey) {
Iterator<String> keys = json.keys();
while (keys.hasNext()) {
String key = keys.next();
Object value = json.get(key);
if (value instanceof JSONObject) {
// 如果是JSONObject,则递归获取值
getValue((JSONObject) value, key);
} else {
// 如果是最底层的值,输出并记录最顶层的key和value
if (key.equals("leaf")) {
System.out.println("最底层的值为:" + value);
System.out.println("最顶层的key为:" + topKey);
}
}
}
}
```
调用方法如下:
```java
JSONObject json = new JSONObject("{\"root\":{\"branch1\":{\"leaf\":\"value1\"},\"branch2\":{\"leaf\":\"value2\"}}}");
getValue(json.getJSONObject("root"), "root");
```
输出结果为:
```
最底层的值为:value1
最顶层的key为:root
最底层的值为:value2
最顶层的key为:root
```
注意:以上代码仅为示例,实际使用时需要根据具体情况进行修改。