使用Retrofit Json解析返回用户配置文件数据
问题描述:
我很难从改造中返回用户数据。我想从服务器返回的数据,并插入共享偏好,以保持用户会话 下面是从服务器使用Retrofit Json解析返回用户配置文件数据
{
"result":"success",
"message":"Your Login was successful...Welcome",
"bool":"true",
"user":{
"firstname":"Steve",
"lastname":"Karuma",
"phone":"0728753983",
"natID":"29775996",
"emailAddress":"[email protected]",
"unique_id":"589496660cd8e1.44744002"
}
}
这里是我的登陆过程的代码片断
private void loginProcess(String phone, String password) {
final ProgressDialog progressDialog = new ProgressDialog(Login.this);
progressDialog.setTitle("Just a moment");
progressDialog.setMessage("Loading....");
progressDialog.show();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
RequestInterface requestInterface = retrofit.create(RequestInterface.class);
ShopUser user = new ShopUser();
user.setPhone(phone);
user.setPassword(password);
ServerRequest request = new ServerRequest();
request.setOperation(Constants.LOGIN_OPERATION);
request.setUser(user);
Call<ServerResponse> response = requestInterface.operation(request);
response.enqueue(new Callback<ServerResponse>() {
@Override
public void onResponse(Call<ServerResponse> call, retrofit2.Response<ServerResponse> response) {
ServerResponse resp = response.body();
Toast.makeText(getApplicationContext(),resp.getMessage(),Toast.LENGTH_LONG).show();
Log.i(Constants.TAG,resp.getMessage());
if(resp.getResult().equals(Constants.SUCCESS)){
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean(Constants.IS_LOGGED_IN,true);
editor.putString(Constants.FIRST_NAME, resp.getUser().getFirstname());
editor.putString(Constants.LAST_NAME, resp.getUser().getLastname());
editor.putString(Constants.EMAIL, resp.getUser().getEmail());
editor.putString(Constants.PHONE, resp.getUser().getPhone());
editor.putString(Constants.ID_NUMBER, resp.getUser().getNatID());
editor.putString(Constants.UNIQUE_ID, resp.getUser().getUnique_id());
editor.apply();
goToProfile();
}
progressDialog.dismiss();
}
@Override
public void onFailure(Call<ServerResponse> call, Throwable t) {
Log.d(Constants.TAG,"Failed");
Toast.makeText(getApplicationContext(),t.getLocalizedMessage(),Toast.LENGTH_LONG).show();
progressDialog.dismiss();
}
});
}
答
你ServerResponse我JsonResponse类必须扩展Serializable以通过获取器获取JSON
错误是什么? –
和你的问题在哪里? –
对不起,问题是为什么我的数据没有被返回。即使当我使用日志显示结果,没有任何被返回 –