Android 使用改型Json解析返回用户配置文件数据
我很难从改装中返回用户数据。我想从服务器返回数据并插入到共享首选项中以维护用户会话 这是来自服务器的JsonResponseAndroid 使用改型Json解析返回用户配置文件数据,android,json,retrofit,Android,Json,Retrofit,我很难从改装中返回用户数据。我想从服务器返回数据并插入到共享首选项中以维护用户会话 这是来自服务器的JsonResponse { "result":"success", "message":"Your Login was successful...Welcome", "bool":"true", "user":{ "firstname":"Steve", "lastname":"Karuma", "pho
{
"result":"success",
"message":"Your Login was successful...Welcome",
"bool":"true",
"user":{
"firstname":"Steve",
"lastname":"Karuma",
"phone":"0728753983",
"natID":"29775996",
"emailAddress":"stevekaruma@gmail.com",
"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();
}
});
}
private void登录过程(字符串电话、字符串密码){
final ProgressDialog ProgressDialog=新建ProgressDialog(Login.this);
progressDialog.setTitle(“稍等”);
progressDialog.setMessage(“加载…”);
progressDialog.show();
改装改装=新改装.Builder()
.baseUrl(常量.BASE\u URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
RequestInterface RequestInterface=reformation.create(RequestInterface.class);
ShopUser=新ShopUser();
user.setPhone(电话);
user.setPassword(密码);
ServerRequest=newserverrequest();
request.setOperation(常量.LOGIN\u操作);
request.setUser(用户);
调用响应=请求接口.操作(请求);
response.enqueue(新回调(){
@凌驾
公共void onResponse(呼叫,改装2.响应){
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)){
SharedReferences.Editor=首选项.edit();
putBoolean(Constants.IS\u LOGGED\u IN,true);
putString(Constants.FIRST_NAME,resp.getUser().getFirstname());
putString(Constants.LAST_NAME,resp.getUser().getLastname());
editor.putString(Constants.EMAIL,resp.getUser().getEmail());
putString(Constants.PHONE,resp.getUser().getPhone());
putString(Constants.ID_NUMBER,resp.getUser().getNatID());
putString(Constants.UNIQUE_ID,resp.getUser().getUnique_ID());
editor.apply();
goToProfile();
}
progressDialog.disclose();
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
Log.d(Constants.TAG,“Failed”);
Toast.makeText(getApplicationContext(),t.getLocalizedMessage(),Toast.LENGTH_LONG).show();
progressDialog.disclose();
}
});
}
您的ServerResponse类必须扩展Serializable才能通过getter获取JSON错误是什么?您的问题在哪里?抱歉,问题是为什么不返回我的数据。即使使用日志显示结果,也不会返回任何内容Post ServerResponse类这是我的服务器响应类