2016-06-02 12 views
0

Ich möchte ein JSON wie diese analysieren:Fehler beim Parsen von JSON mit Gson in Java

{ 
"Header":{"S":"1A-01-07"}, 
"Items":{"L":[{"M":{"Name":{"S":"SL-1A Pre-Action (Green)"},"Roles":{"L":[{"S":"3cc3"}]}}}, 
      {"M":{"Name":{"S":"SL-8A Pre-Action (Yellow)"},"Roles":{"L":[{"S":"3cc3"}]}}}] 
     } 
} 

und für die ich schuf diese Klassenstruktur:

public class CLI { 

    Header Header; 
    Items Items; 

    public Header getHeader() { 
     return Header; 
    } 
    public void setHeader(Header h) { 
     Header = h; 
    } 
    public Items getItems() { 
     return items; 
    } 
    public void setItems(Items i) { 
     items = i; 
    } 

} 

class Header { 
    String S; 

    public String getS() { 
     return S; 
    } 

    public void setS(String s) { 
     S = s; 
    } 
} 

class Items { 
    List<Map<Roles,Name>> L; 

    public List<Map<Roles, Name>> getL() { 
     return L; 
    } 

    public void setL(List<Map<Roles, Name>> l) { 
     L = l; 
    } 
} 

class Roles { 
    List<Item1> itemList; 

    public List<Item1> getLista() { 
     return itemList; 
    } 

    public void setLista(List<Item1> l) { 
     this.itemList = l; 
    } 
} 

class Name { 
    Item1 name; 

    public Item1 getName() { 
     return name; 
    } 

    public void setName(Item1 n) { 
     this.name = n; 
    } 
} 

class Item1 { 
    String S; 

    public String getS() { 
     return S; 
    } 

    public void setS(String s) { 
     S = s; 
    } 
} 

aber wenn ich versuche, es zu deserialisieren mit fromJson ("myJSON", CLI.class) bekomme ich diesen Fehler: "Unbeendetes Objekt in Zeile 1 Spalte 80 Pfad $ .Items. [0] ...". Ich habe die Struktur hundert Mal überprüft, aber ich sehe nicht, was daran falsch sein könnte.

Können Sie mir helfen, das Problem zu finden?

+3

Das ist nicht JSON. Nicht annähernd. –

+0

Siehe: http://json.org/example.html –

Antwort

1

Ihre json falsch formatiert ist, siehe http://www.w3schools.com/json/ für einige Beispiele, aber im Wesentlichen keine =

Versuchen und einen json Parser Google, dass die Fehler oder verwenden Sie ein Add-on für Texteditoren wie Atom zeigen z.B. https://atom.io/packages/atom-beautify Welche formatiert automatisch Ihre JSON und zeigt Fehler

+0

Ich formatierte den JSON wie du vorgeschlagen hast (Ich habe meine erste Nachricht mit der neuen Version bearbeitet) und laut einem JSON-Tester sollte es jetzt in Ordnung sein. Aber es scheint, dass meine Klassenstruktur auch Korrekturen benötigt: Wenn ich das Programm ausführe, bekomme ich diesen Fehler: "Erwartet BEGIN_OBJECT, aber war STRING in Zeile 1 Spalte 44 Pfad $ .Items.L [0]" – toofast

+0

Siehe: http: // stackoverflow.com/questions/28418662/expected-begin-object-but-was-string-at-line-1-column-1 Dies sollte Ihren Fehler erklären :) –