多层JSON数据,在获取最底层数据的时候,也知道这条数据所属的最顶层是谁
时间: 2024-02-15 08:03:14 浏览: 39
在获取最底层数据的同时,也可以记录下每一层的父节点,这样就可以在获取最底层数据后,知道它所属的最顶层是谁。以下是一个示例代码:
```java
public static void getValue(JSONObject json, String parentKey, 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, topKey);
} else {
// 如果是最底层的值,输出并记录所属的最顶层key和父节点key
if (key.equals("leaf")) {
System.out.println("最底层的值为:" + value);
System.out.println("所属的最顶层key为:" + topKey);
System.out.println("父节点key为:" + parentKey);
}
}
}
}
```
调用方法如下:
```java
JSONObject json = new JSONObject("{\"root\":{\"branch1\":{\"leaf\":\"value1\"},\"branch2\":{\"leaf\":\"value2\"}}}");
getValue(json.getJSONObject("root"), null, "root");
```
输出结果为:
```
最底层的值为:value1
所属的最顶层key为:root
父节点key为:branch1
最底层的值为:value2
所属的最顶层key为:root
父节点key为:branch2
```
注意:以上代码仅为示例,实际使用时需要根据具体情况进行修改。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](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)