ホームページ  >  記事  >  Java  >  org.json および Jackson ライブラリを使用して Java で JSON 文字列を HashMap に変換するにはどうすればよいですか?

org.json および Jackson ライブラリを使用して Java で JSON 文字列を HashMap に変換するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-12 06:41:01272ブラウズ

How do you convert JSON strings to HashMaps in Java using org.json and Jackson libraries?

Java で JSON 文字列を HashMap に変換する

JSON 形式のデータを扱う場合、HashMap に変換すると便利な方法です。情報の保存とアクセス。 org.json ライブラリを使用してこの変換を実現する方法は次のとおりです。

org.json ライブラリの使用

  1. 変換されたデータを保存する HashMap オブジェクトを作成します。
  2. JSON 文字列を解析してJSONObject.
  3. JSONObject 内のキーを繰り返し処理します。
  4. キーごとに、JSONObject から対応する値を取得します。
  5. 値を適切な型に変換します (例:リスト、ハッシュマップ) 必要に応じて。
  6. キーと値のペアをHashMap.

再帰的な例

次のコードは、ネストされた JSON 構造を処理する再帰的な実装を提供します。

public static Map<String, Object> 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<String, Object> toMap(JSONObject object) throws JSONException {
    Map<String, Object> map = new HashMap<String, Object>();

    Iterator<String> 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<Object> toList(JSONArray array) throws JSONException {
    List<Object> list = new ArrayList<Object>();
    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;
}

Jackson Library を使用する

場合必要に応じて、JSON 解析に Jackson ライブラリを使用することもできます。このアプローチはより簡潔で、必要な手順が少なくなります:

import com.fasterxml.jackson.databind.ObjectMapper;

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

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

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