webentwicklung-frage-antwort-db.com.de

Analysiert JSON-Objekte nur mit Zeichenfolge und Wert

Ich habe ein Problem beim Parsen mit dem Mindestwert für die Zuordnung in Android.

Es gibt einige Beispiele für JSON-Formate mit weiteren Informationen, zB:

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

Dies ist das am häufigsten verwendete und am einfachsten zu verwendende Beispiel. Verwenden Sie einfach getString("id") oder getValue("name").

Aber wie parse ich die Zuordnung mit diesem JSON-Format mit nur Zeichenfolge und Wert Mindestformat zu Java Zuordnungssammlung mit Schleifen. Und weil die Zeichenfolge JSON wird immer eine mit anderen. Beispiel:

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

Danken

36
Edy Cu

Sie müssen eine Liste aller Schlüssel abrufen, diese durchlaufen und zu Ihrer Karte hinzufügen, wie im folgenden Beispiel gezeigt:

    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);
    }
86
dogbane

Mein Pseudocode Beispiel sieht folgendermaßen aus:

JSONArray jsonArray = "[{id:\"1\", name:\"sql\"},{id:\"2\",name:\"Android\"},{id:\"3\",name:\"mvc\"}]";
JSON newJson = new JSON();

for (each json in jsonArray) {
    String id = json.get("id");
    String name = json.get("name");

    newJson.put(id, name);
}

return newJson;
9
Buhake Sindi