2017-02-16 52 views
-4

我很難從改造中返回用戶數據。我想從服務器返回的數據,並插入共享偏好,以保持用戶會話 下面是從服務器使用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(); 

     } 
    }); 
} 
+1

錯誤是什麼? –

+2

和你的問題在哪裏? –

+0

對不起,問題是爲什麼我的數據沒有被返回。即使當我使用日誌顯示結果,沒有任何被返回 –

回答

0

你ServerResponse我JsonResponse類必須擴展Serializable以通過獲取器獲取JSON