ホームページ >Java >&#&チュートリアル >org.json ライブラリを使用して Java で JSON 文字列を HashMap に変換する方法

org.json ライブラリを使用して Java で JSON 文字列を HashMap に変換する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-13 14:03:02895ブラウズ

How to Convert JSON Strings to HashMaps in Java Using the org.json Library?

org.json ライブラリを使用した Java での JSON 文字列の HashMap への変換

Java で JSON データを操作する場合の一般的なタスクは次のとおりです。 JSON 文字列を HashMap に変換して、データの操作と保存を容易にします。この記事では、org.json ライブラリを使用してこの変換を実現する方法について詳しく説明します。

JSON 構造

次の JSON 文字列を考えてみましょう:

{
"name" : "abc",
"email id" : ["[email protected]", "[email protected]", "[email protected]"]
}

目標は、この JSON 文字列を、プロパティ名に一致するキーとそれぞれの値に対応する値を持つ HashMap に変換することです。

HashMap の初期化

最初、変換されたデータを保存するために HashMap を初期化します:

Map<String, Object> retMap = new HashMap<String, Object>();

再帰変換

変換プロセスには、JSON オブジェクトを再帰的に走査し、ネストされた構造も変換することが含まれます。次のコード スニペットは、再帰的変換メソッドの概要を示しています。

public static Map jsonToMap(JSONObject json) throws JSONException {
    Map<String, Object> retMap = new HashMap<String, Object>();

    if(json != JSONObject.NULL) {
        retMap = toMap(json);
    }
    return retMap;
}

public static Map toMap(JSONObject object) throws JSONException {
    Map map = new HashMap();

    Iterator keysItr = object.keys();
    while(keysItr.hasNext()) {
        String key = keysItr.next();
        Object value = object.get(key);

        if(value instanceof JSONArray) {
            value = toList((JSONArray) value);
        }

        else if(value instanceof JSONObject) {
            value = toMap((JSONObject) value);
        }
        map.put(key, value);
    }
    return map;
}

public static List toList(JSONArray array) throws JSONException {
    List list = new ArrayList();
    for(int i = 0; i < array.length(); i++) {
        Object value = array.get(i);
        if(value instanceof JSONArray) {
            value = toList((JSONArray) value);
        }

        else if(value instanceof JSONObject) {
            value = toMap((JSONObject) value);
        }
        list.add(value);
    }
    return list;
}

このコードは、JSON オブジェクトを再帰的に走査し、配列やオブジェクトなどのネストされた構造を処理し、最終的な HashMap に JSON 文字列内のすべてのデータが含まれるようにします。 .

Jackson ライブラリの使用

また、JSON 文字列を HashMap に変換するために Jackson ライブラリを利用することもできます。これは次のコードで実行できます:

import com.fasterxml.jackson.databind.ObjectMapper;

Map<String, Object> mapping = new ObjectMapper().readValue(jsonStr, HashMap.class);

以上がorg.json ライブラリを使用して Java で JSON 文字列を HashMap に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。