JavaでJSONObjectをMapに変換する方法は何ですか。
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内の値がJSONObjectである場合、jsonToMapメソッドを再帰的に呼び出します。最終的に変換されたMapを出力します。
結果は{name=John, age=30}です。