我在我的Android應用程序中使用okhttp Retrofit來發出網絡請求。在請求一個我得到這個錯誤:
com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:預期BEGIN_OBJECT但STRING在第1行1條路徑$
我看到一個201響應日誌但Retrofit拋出這個錯誤。以下是我的代碼。
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值是 -
{"emailAddress":"[email protected]","password":"tester123","userSource":"APH"}
我已經測試此JSON與jsonLint,這是一個有效的JSON。這是我的會員階層,應該是理想的迴應。響應
public class Member {
public String emailAddress;
public String token;
public long id;
public String firstName;
public String lastName;
}
例子應該是這樣的:
{
"emailAddress": "[email protected]",
"id": 1437811,
"token": "sdhshdghsdhhsdbcjhbsjdhc",
"firstName": "John",
"lastName": "Smith"
}
你有答案的例子JSON?這看起來像是對服務響應進行反序列化的問題。 –
@AndrewBreen我添加了一個響應的例子。 – user3773337
您能否確認這是您收到的響應 - 打開logging.Verbose在您的Retrofit設置代碼中,並直接查看請求和響應的樣子。 –