Gson: Erwartete eine Zeichenfolge, war aber BEGIN_OBJECT

9

Ich versuche eine einfache JSON-Antwort zu lesen.

  

{"Antwort": "ok"}

Hier ist mein Code:

%Vor%

Aber ich bekomme diesen Fehler:

  

Erwartete eine Zeichenfolge, war aber BEGIN_OBJECT

Ich verstehe nicht, was ich falsch mache. Kannst du mir helfen?

    
student 14.01.2017, 11:58
quelle

1 Antwort

4

Ihr Parser ist in Ordnung. Wenn das Code-Snippet, das Sie angegeben haben, wirklich zu dem Exception-Stack-Trace gehört, den Sie erhalten, dann glaube ich, dass die Eigenschaft response des zu analysierenden JSON einen anderen Wert als eine Zeichenfolge hat. Zum Beispiel

%Vor%

kann von Ihrem Parser einfach geparst werden. Die nächstgelegene Ausnahmebedingungsnachricht, die Sie mit Ihrem Parser erhalten können, ist jedoch ein JSON ähnlich dem folgenden:

%Vor%

das sollte mit etwas wie

fehlschlagen
  

Ausnahme im Thread "main" java.lang.IllegalStateException: Erwartete eine Zeichenfolge, war aber BEGIN_OBJECT in Zeile 1 Spalte 16 Pfad $ .response

Beachten Sie auch, dass Gson den problematischen Ort zumindest in seinen neuesten Versionen meldet (ich habe es mit Gson 2.5 getestet). Stellen Sie nur sicher, dass Sie die erwarteten Eingaben erhalten. Wenn Sie der Meinung sind, dass die Antwort in dem von Ihnen erwähnten Format sein muss, versuchen Sie einfach, den Eingabestream zu verfolgen und die Unterschiede zu finden. Verfolgen eines Eingabestreams in seiner einfachsten, aber nicht der effizientesten Implementierung, und Sie könnten einen etwas effizienteren Tracing-Reader wie diesen haben:

%Vor%

mit:

%Vor%

Dann überprüfe noch einmal, ob du wirklich { "response": "ok" } bekommst.

    
Lyubomyr Shaydariv 14.01.2017, 13:24
quelle

Tags und Links