web-dev-qa-db-fra.com

Analyser l'objet JSON avec une chaîne et une valeur uniquement

J'ai un problème lors de l'analyse de la valeur minimale à mapper dans Android.

Il y a quelques exemples de format JSON avec plus d'informations ex:

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

Pour cet exemple le plus courant à utiliser et facile à utiliser, il suffit d'utiliser getString("id") ou getValue("name").

Mais comment analyser pour mapper en utilisant ce format JSON avec seulement une chaîne et une valeur minimale au format Java collection de cartes en utilisant la boucle. Et parce que la chaîne json sera toujours différente les unes des autres. Ex:

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

Remercier

36
Edy Cu

Vous devez obtenir une liste de toutes les clés, les parcourir et les ajouter à votre carte, comme indiqué dans l'exemple ci-dessous:

    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

Mon pseudocode exemple sera le suivant:

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