2016-12-23 2 views
0

Ich habe eine JSONObject Antwort wieEntfernen von unerwünschten Informationen in Gson JsonObject

{ 
    "0:"{ 
     "name": "name1", 
     "surname": "surname1", 
     "id": "22", 
     "motivations": [] 
    }, 
    "1:"{ 
     "name": "name2", 
     "surname": "surname2", 
     "id": "23", 
     "motivations": [] 
    }, 
    "2:"{ 
     "name": "name3", 
     "surname": "surname3", 
     "id": "24", 
     "motivations": [] 
    }, 
    "sign": "9e46b7d6b140b", 
    "last_call": 1446 
} 

ich es die List<Person> abbilden will, aber ich kann es tun, bevor ich "0:","1:","2:" ,"sign":"9e46b7d6b140b","last_call":1446 gelöscht.

Irgendeine Idee, wie man das im Modell abbildet?

+0

Ihre API ändern, denke ich. – Rohit5k2

+0

Die JSON-Form t ist völlig schlecht. Damit Sie GSON benutzen können, muss es ein Array von Person-Objekten –

+0

enthalten, so dass es der api-Fehler ist? oder muss ich es anders entschlüsseln? – Expiredmind

Antwort

1

erstellen Person Klasse

class Person{ 
     String name; 
     String surname; 
     String id; 
     String[] motivations; 
     //Create getter setter for it 
    } 

HashMap<String,Object> map = new HashMap<>();

map = new Gson().fromJson(responseData, HashMap.class); 

erstellen und letzte Iterate über Karte

Iterator entries = map .entrySet().iterator(); 

while (entries.hasNext()) { 
    String value = (String)entries.next().getValue(); 
Object p; 
try{ 
    p = new Gson().fromJson(value , Person .class); 
    \\person class 
    } 
    catch(Exception e) 
    { 
    // catch exception 
    p =null; 
    } 
    if(p!= null && p instanceOf Person) 
    { 
    \\create list and add it to the separate list 
    \\ entries.next().getKey() 
    \\ entries.next().getValue() 
    } 
} 
+0

Ich kann Einträge nicht implementieren.next(). GetValue(); (kann nicht aufgelöst werden) HashMap map = new Gson(). fromJson (response.body(), HashMap.class); Iterator-Einträge = map .entrySet(). Iterator(); while (entries.hasNext()) { Zeichenfolge value = (String) entries.next(). GetValue(); Log.i (TAG, "cos ma" + Wert); entries.next(); } – Expiredmind

+1

@ Expiredmind, Überprüfen Sie mit http://StackOverflow.com/Questions/1066589/iterate-through-a-hashmap Ich denke, das wird Ihnen helfen –

+0

danke! das löst mein Problem – Expiredmind

Verwandte Themen