JavaでJSONObjectをHashMapに変換する方法は何ですか?

Javaで、JSONObjectをHashMapに変換するためにJacksonライブラリを使用することができます。以下は簡単な例です:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        String json = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";

        ObjectMapper objectMapper = new ObjectMapper();
        try {
            // 将JSON字符串转换为JsonNode对象
            JsonNode jsonNode = objectMapper.readTree(json);

            // 将JsonNode转换为HashMap
            HashMap<String, Object> hashMap = convertJsonNodeToHashMap(jsonNode);

            // 打印HashMap
            for (Map.Entry<String, Object> entry : hashMap.entrySet()) {
                System.out.println(entry.getKey() + ": " + entry.getValue());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static HashMap<String, Object> convertJsonNodeToHashMap(JsonNode jsonNode) {
        HashMap<String, Object> hashMap = new HashMap<>();

        Iterator<Map.Entry<String, JsonNode>> iterator = jsonNode.fields();
        while (iterator.hasNext()) {
            Map.Entry<String, JsonNode> entry = iterator.next();
            String key = entry.getKey();
            JsonNode value = entry.getValue();

            // 处理嵌套的JsonNode
            if (value.isObject()) {
                hashMap.put(key, convertJsonNodeToHashMap(value));
            } else {
                hashMap.put(key, value.asText());
            }
        }

        return hashMap;
    }
}

上記のコードは、JSON文字列をJsonNodeオブジェクトに変換するためにJacksonライブラリのObjectMapperクラスを使用しています。 次に、JsonNodeオブジェクトをHashMapオブジェクトに変換するための再帰的なconvertJsonNodeToHashMapメソッドを使用しています。 このメソッドはJsonNodeのフィールドを走査し、フィールドのタイプに応じて値を処理します。

上記のコードを使用する前に、Jacksonライブラリの依存関係を先に追加する必要があります。

bannerAds