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
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
fehlschlagenAusnahme 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.