Ich benutze okhttp Retrofit in meiner Android App, um Netzwerkanfragen zu machen. Auf einen der Anfragen bekomme ich diesen Fehler:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Erwartete BEGIN_OBJECT aber war STRING in Zeile 1, Spalte 1 Pfad $
Ich sehe eine 201-Antwort in Die Protokolle aber Retrofit wirft diesen Fehler. Unten ist mein Code.
signup(signupParams, new Callback<Member>() {
@Override
public void success(Member member, Response response) {
if (member != null) {
UserAccount userAccount = new UserAccount(member);
userAccount.save();
}
@Override
public void failure(RetrofitError re) {
BusProvider.post(new SignupFailedEvent(re, email));
}
});
signupParams Wert ist -
{"emailAddress":"[email protected]","password":"tester123","userSource":"APH"}
ich diesen json mit jsonLint getestet haben und es ist eine gültige Json. Und das ist meine Member Class, die idealerweise die Antwort sein sollte.
public class Member {
public String emailAddress;
public String token;
public long id;
public String firstName;
public String lastName;
}
Beispiel der Antwort sollte wie folgt sein:
{
"emailAddress": "[email protected]",
"id": 1437811,
"token": "sdhshdghsdhhsdbcjhbsjdhc",
"firstName": "John",
"lastName": "Smith"
}
Haben Sie Beispiel JSON der Antwort? Dies scheint ein Problem bei der Deserialisierung der Antwort des Dienstes zu sein. –
@AndrewBreen Ich habe ein Beispiel für die Antwort hinzugefügt. – user3773337
Können Sie bestätigen, dass dies die Antwort ist, die Sie erhalten - schalten Sie die Protokollierung ein.Verbehren Sie in Ihrem Retrofit-Setup-Code und sehen Sie, wie die Anfrage und Antwort direkt aussieht. –