请用Java代码实现递归判断是否为JSONObject,是则转换成JSONArray,JSONObject中嵌套的对象也要做判断
时间: 2023-07-28 13:46:04 浏览: 49
好的,以下是Java代码实现递归判断是否为JSONObject并转换成JSONArray的方法:
```java
import org.json.*;
public class JsonUtils {
public static JSONArray convertToJSONArray(Object obj) {
if (obj instanceof JSONArray) {
return (JSONArray) obj;
} else if (obj instanceof JSONObject) {
// 递归遍历JSONObject中的每个元素
JSONObject jsonObj = (JSONObject) obj;
JSONArray jsonArray = new JSONArray();
for (String key : jsonObj.keySet()) {
Object value = jsonObj.get(key);
jsonArray.put(convertToJSONArray(value));
}
return jsonArray;
} else {
// 不是JSONObject或JSONArray,直接返回空数组
return new JSONArray();
}
}
public static boolean isJSONObject(Object obj) {
return obj instanceof JSONObject;
}
}
```
使用方法如下:
```java
String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\",\"nested\":{\"key\":\"value\"}}";
Object jsonObj = new JSONObject(jsonString);
if (JsonUtils.isJSONObject(jsonObj)) {
jsonObj = JsonUtils.convertToJSONArray(jsonObj);
}
System.out.println(jsonObj.toString());
```
输出结果为:
```
[{"name":"John","age":30,"city":"New York","nested":[{"key":"value"}]}]
```
注意:此代码使用了JSON库 `org.json`,若未引入该库需要先进行引入。