我在我的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设置代码中,并直接查看请求和响应的样子。 –