要将一个JSONObject转换为Map,可以使用以下方式:
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Main {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject("{\"name\":\"John\", \"age\":30}");
Map<String, Object> map = jsonToMap(jsonObject);
System.out.println(map);
}
private static Map<String, Object> jsonToMap(JSONObject jsonObject) {
Map<String, Object> map = new HashMap<>();
Iterator<String> keys = jsonObject.keys();
while (keys.hasNext()) {
String key = keys.next();
Object value = jsonObject.get(key);
if (value instanceof JSONObject) {
value = jsonToMap((JSONObject) value);
}
map.put(key, value);
}
return map;
}
}
在上面的代码中,首先我们创建了一个JSONObject对象,然后调用jsonToMap
方法将其转换为Map。jsonToMap
方法使用递归的方式将JSONObject转换为Map,如果JSONObject中的value也是JSONObject,则继续递归调用jsonToMap
方法。最终将转换后的Map打印出来。
输出结果为:{name=John, age=30}