文字列と値のみでJSONオブジェクトを解析する 質問する

文字列と値のみでJSONオブジェクトを解析する 質問する

Android でマップする最小値を使用して解析しようとすると問題が発生します。

詳細情報を含むサンプル JSON 形式がいくつかあります。例:

[{id:"1", name:"sql"},{id:"2",name:"android"},{id:"3",name:"mvc"}]

これは最も一般的に使用される例であり、getString("id")またはを使用するだけで簡単に使用できますgetValue("name")

しかし、この JSON 形式を、文字列と値の最小形式のみを使用してループを使用して Java マップ コレクションにマップするように解析するにはどうすればよいでしょうか。また、文字列 json は常に互いに異なるためです。例:

{"1":"sql", "2":"android", "3":"mvc"}

感謝

ベストアンサー1

以下の例に示すように、すべてのキーのリストを取得し、それらをループしてマップに追加する必要があります。

    String s = "{menu:{\"1\":\"sql\", \"2\":\"android\", \"3\":\"mvc\"}}";
    JSONObject jObject  = new JSONObject(s);
    JSONObject  menu = jObject.getJSONObject("menu");

    Map<String,String> map = new HashMap<String,String>();
    Iterator iter = menu.keys();
    while(iter.hasNext()){
        String key = (String)iter.next();
        String value = menu.getString(key);
        map.put(key,value);
    }

おすすめ記事