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 サイトの他の関連記事を参照してください。