2016-10-10 6 views
0

EDIT: Im Parsen eines JSON. Die JSON haben diese FormLinkedhashmap innerhalb ArrayList von Objekten, Daten erhalten

{ 
    "responseObject": { 
      "slots_0": [ 
          { //SlotItem (date, string, int, boolean }, 
          { //SlotItem } 
       ],    
      "slots_1": [ 
          { //SlotItem (date, string, int, boolean }, 
          { //SlotItem } 
          { //SlotItem } 
       ] 
    }, 
    "messages" : "Hi Stackoverflow" 
} 

ich nicht meine Antwort mit slot_0 analysieren kann, slot_1, weil ich mehr haben kann, dass nur zwei tatsächlich kann ich slot_n, responseObject wird ein Array von Arrays von SlotItems sein, wenn im nicht falsch.

Ich mache diese Parsing zuerst (Weil ich nur responseObject brauchen)

Hashmap <String, String> response = (Hashmap<String, String>) response.get("responseObject")

So nach, dass ich versuche, eine ArrayList<SlotItem []>

Vor meiner bearbeiten zu machen ich auf diese Weise versuchte:

Ich möchte eine ArrayList eines Arrays von Objekten haben

ArrayList <SlotItem []> slotsinfo 

Im Inneren des Arraylist Ich habe diese Struktur:
enter image description here

Ich möchte eine einfache Arraylist bekommen, kein LinkedHashMap.
Weil ich die Informationen auf diese Weise

String storeId = slotsinfo.get(index).getStoreId(); 

Innen SlotItem abrufen möchten habe ich Getter und Setter.

Ich versuche, mit Get (Index) die Daten innerhalb der Liste abrufen, aber es funktioniert nicht.

Antwort

1

Sieht aus wie Sie eine ArrayList<LinkedHashMap<String, String>> haben, kein ArrayList<SlotItem[]>

Ich möchte eine einfache Arraylist bekommen, kein LinkedHashMap. Weil ich wollen

String storeId = slotsinfo.get(index).getStoreId(); 

Okay, die Informationen auf diese Weise Retriever, dann müssen Sie jedoch beheben, Sie werden immer die Daten, die eine ArrayList<SlotItem> zu haben.

Wie es derzeit steht, sollten Sie in der Lage sein

result.get(index).get("storeId"); 

EDIT

Versuchen zu tun, um Ihre JSON wie diese zu bekommen, so dass responseObject ein Array von Arrays

{ 
    "responseObject": [ 
       [ 
        { //SlotItem (date, string, int, boolean }, 
        { //SlotItem } 
       ],    
       [ 
        { //SlotItem (date, string, int, boolean }, 
        { //SlotItem } 
        { //SlotItem } 
       ] 
    ], 
    "messages" : "Hi Stackoverflow" 
} 
+0

ich meine aktualisieren Post, vielleicht kannst du mir dabei helfen. Ich kann den Teil von get ("storeId") nicht tun. Ich danke dir sehr. –

+0

Sie sollten Ihren JSON wirklich formatieren, wenn irgend möglich. Mit Schlüsseln von x0, x1, ..., xn brauchen Sie ein Array. Wenn Sie kein Array mit Arrays anzeigen, zeigen Sie ein Wörterbuch mit Schlüsselwerten an, wobei alle Werte Arrays sind. Ihr aktuelles Format erfordert "responseObject.get (" slot_0 "). Get (index) .get (" storeId ")'. Wenn Sie ein Array von Arrays hätten, könnten Sie alle Arrays von responseObject der Reihe nach durchlaufen.Momentan müssten Sie das 'keySet' des Antwortobjekts durchlaufen. –

+0

Das ist eigentlich das Problem, weil ich das JSON nicht umformatieren kann, (ist ein schreckliches json, das nicht mal so ist wie es sein sollte) Ich werde es versuchen Überprüfen Sie die Ergebnisse der Schleife, Vielen Dank –

Verwandte Themen