我第一次尝试使用改造库,我遇到了问题。
这是我的JSON:
{
"id":"15",
"email":"example@gmail.com",
"phone":null,
"password":"",
"login":"",
"userProfile":{
"lan_status":"",
"name":"example",
"sex":"0",
"second_name":"",
"date_of_birth":"0000-00-00 00:00:00"
}
}
这是我的改装代码:
String url = "https://example.com";
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(url)
.build();
mServerApi = restAdapter.create(ServerApi.class);
mServerApi.getUserInformation( new Callback <GetUserProfileInfo> () {
@Override
public void success(GetUserProfileInfo getUserProfileInfo, Response response) {
saveUserInfromationToDb(mActivity, getUserProfileInfo);
}
@Override
public void failure(RetrofitError error) {
}
});
public class GetUserProfileInfo {
@SerializedName("id")
public int mUserId;
@SerializedName("email")
public String mUserEmail;
@SerializedName("phone")
public String mUserPhone;
@SerializedName("password")
public String mUserPassword;
@SerializedName("login")
public String mUserLogin;
@SerializedName("userProfile")
public List<GetUserProfileInfo_2> userProfile;
}
public class GetUserProfileInfo_2 {
@SerializedName("lanStatus")
public int mLanStatus;
@SerializedName("firstName")
public String mFirstName;
@SerializedName("lastName")
public String mLastName;
@SerializedName("sex")
public int mSex;
}
但我遇到了这个问题: retrofit.RetrofitError:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期BEGIN_ARRAY但在第1行第533行是BEGIN_OBJECT路径$ .userProfile
任何帮助都会很高兴!
答案 0 :(得分:2)
public class GetUserProfileInfo {
@SerializedName("id")
public int mUserId;
@SerializedName("email")
public String mUserEmail;
@SerializedName("phone")
public String mUserPhone;
@SerializedName("password")
public String mUserPassword;
@SerializedName("login")
public String mUserLogin;
@SerializedName("userProfile")
public GetUserProfileInfo_2 userProfile;
}
答案 1 :(得分:0)
根据你的JSON userProfile
必须是一个对象,而不是一个列表。使用userProfile
中的所有字段创建另一个类,并使用此类代替List<GetUserProfileInfo_2>
userProfile
。
答案 2 :(得分:0)
您可以通过查看我使用Stackoverflow REST API创建的示例应用程序获益。我从Retrofit调用得到的对象是一个对象列表,所以它似乎非常适合你的需求!
https://github.com/BrunoCa/stackrest 这就是应用程序:https://play.google.com/store/apps/details?id=bruno.stackrest
享受