json获取多级java_如何优雅的取出多层级JSON最深处的值
时间: 2023-10-03 16:02:19 浏览: 95
可以使用递归来优雅地取出多层级JSON最深处的值。下面是一个Java示例代码:
```java
import org.json.JSONObject;
public class JsonUtils {
/**
* 递归获取JSON中最深处的值
* @param jsonObject JSON对象
* @return 最深处的值
*/
public static Object getDeepestValue(JSONObject jsonObject) {
Object value = null;
for (String key : jsonObject.keySet()) {
Object obj = jsonObject.get(key);
if (obj instanceof JSONObject) {
value = getDeepestValue((JSONObject) obj);
} else {
value = obj;
}
}
return value;
}
}
```
使用示例:
```java
String jsonString = "{\"name\":\"John\",\"age\":30,\"car\":{\"make\":\"Toyota\",\"model\":\"Camry\",\"year\":2020}}";
JSONObject jsonObject = new JSONObject(jsonString);
Object value = JsonUtils.getDeepestValue(jsonObject);
System.out.println(value); // 输出: 2020
```
在上面的示例中,我们传入一个JSON对象,递归查找最深处的值,并返回该值。如果最深处的值是一个JSON对象,则继续递归查找,直到找到最深处的值为止。
阅读全文