ホームページ > Java > &#&チュートリアル > JavaでJSON文字列をHashMapに変換するにはどうすればよいですか?

JavaでJSON文字列をHashMapに変換するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-14 10:42:02
オリジナル
583 人が閲覧しました

How to Convert a JSON String to a HashMap in Java?

Java を使用した JSON 文字列の HashMap への変換

Java では、さまざまな手法を使用して JSON データを解析し、HashMap に保存できます。 。 org.json ライブラリを使用してこれを行う方法は次のとおりです。

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

    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<>();

    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<>();
    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 String から JSONObject オブジェクトをインスタンス化し、それを引数として jsonToMap メソッドに渡します。 JSON 構造を再帰的に解析し、HashMap に変換します。

または、より簡潔な解決策として Jackson ライブラリを使用することもできます。

import com.fasterxml.jackson.databind.ObjectMapper;

Map<String, Object> mapping = new ObjectMapper().readValue(jsonStr, HashMap.class);
ログイン後にコピー

単に jsonStr を実際の JSON に置き換えます。文字列。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート