要將一個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}