Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用改型Json解析返回用户配置文件数据_Android_Json_Retrofit - Fatal编程技术网

Android 使用改型Json解析返回用户配置文件数据

Android 使用改型Json解析返回用户配置文件数据,android,json,retrofit,Android,Json,Retrofit,我很难从改装中返回用户数据。我想从服务器返回数据并插入到共享首选项中以维护用户会话 这是来自服务器的JsonResponse { "result":"success", "message":"Your Login was successful...Welcome", "bool":"true", "user":{ "firstname":"Steve", "lastname":"Karuma", "pho

我很难从改装中返回用户数据。我想从服务器返回数据并插入到共享首选项中以维护用户会话 这是来自服务器的JsonResponse

{
    "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类这是我的服务器响应类