2016-11-25 75 views
0

我使用android.i實現了寧靜的客戶端使用API​​ URL,令牌等我使用retrofit 2庫實現此應用程序都是正確的。但是json值無法正確顯示。 String values display-null integer values display-0如何檢索json值(字符串值顯示爲空值和整數0)

這是我的代碼。

JSON字符串

{"user": {"login": 22000,"name": "Test Account - C K (Dev)","native_name":ull,"email": null,"identity": null,"password_last_updated_at": null,"phone": null,"balance": 0}} 

我Mainactivity

void getRetrofitObject() { 

    final String API_BASE_URL = "https://www.example.com/"; 
    final String credentials = "xxxujfrfkjgrtgkmuhefekmneignkdgrg"; 
    OkHttpClient okHttpClient = new OkHttpClient.Builder() 
      .addInterceptor(new okhttp3.Interceptor() { 
       @Override 
       public Response intercept(okhttp3.Interceptor.Chain chain) throws IOException { 

        Request request = chain.request().newBuilder() 
          .addHeader("Authorization", credentials) 
          .addHeader("Accept", "application/json").build(); 

        return chain.proceed(request); 

       } 
      }).addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)) 
      .readTimeout(60, TimeUnit.SECONDS) 
      .connectTimeout(60, TimeUnit.SECONDS) 
      .build(); 

    GsonBuilder gsonBuilder = new GsonBuilder(); 
    Gson gson = gsonBuilder.create(); 

    Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl(API_BASE_URL) 
      .client(okHttpClient) 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 


    LoginA service = retrofit.create(LoginA.class); 

    Call <User.UserBean> call = service.getUserDetails(); 

    call.enqueue(new Callback <User.UserBean>() { 
     @Override 
     public void onResponse(Call <User.UserBean> call, retrofit2.Response <User.UserBean> response) { 

      try { 



      text_marks_1.setText("User Balance : " + response.body().getLogin()); 


      } catch (Exception e) { 
       Log.d("onResponse", "There is an error"); 
       e.printStackTrace(); 
      } 
     } 

     @Override 
     public void onFailure(Call <User.UserBean> call, Throwable t) { 
      Log.d("onFailure", t.toString()); 
     } 




    }); 
} 

我的User類

public class User implements Serializable{ 


/** 
* user : {"login":22000,"name":"Test Account - C K (Dev)","native_name":null,"email":null,"identity":null,"password_last_updated_at":null,"phone":null,"balance":0} 
*/ 

private UserBean user; 

public UserBean getUser() { 
    return user; 
} 

public void setUser(UserBean user) { 
    this.user = user; 
} 

public static class UserBean { 
    /** 
    * login : 22000 
    * name : Test Account - C K (Dev) 
    * native_name : null 
    * email : null 
    * identity : null 
    * password_last_updated_at : null 
    * phone : null 
    * balance : 0 
    */ 



    private int login; 

    private String name; 
    private Object native_name; 
    private Object email; 
    private Object identity; 
    private Object password_last_updated_at; 
    private Object phone; 
    private int balance; 

    public int getLogin() { 
     return login; 
    } 

    public void setLogin(int login) { 
     this.login = login; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public Object getNative_name() { 
     return native_name; 
    } 

    public void setNative_name(Object native_name) { 
     this.native_name = native_name; 
    } 

    public Object getEmail() { 
     return email; 
    } 

    public void setEmail(Object email) { 
     this.email = email; 
    } 

    public Object getIdentity() { 
     return identity; 
    } 

    public void setIdentity(Object identity) { 
     this.identity = identity; 
    } 

    public Object getPassword_last_updated_at() { 
     return password_last_updated_at; 
    } 

    public void setPassword_last_updated_at(Object password_last_updated_at) { 
     this.password_last_updated_at = password_last_updated_at; 
    } 

    public Object getPhone() { 
     return phone; 
    } 

    public void setPhone(Object phone) { 
     this.phone = phone; 
    } 

    public int getBalance() { 
     return balance; 
    } 

    public void setBalance(int balance) { 
     this.balance = balance; 
    } 




} 

}

和API類

public interface LoginA { 
@GET("/api/user") 
Call <User.UserBean> getUserDetails();} 

謝謝

+0

你能刪除初始斜槓在API接口的@GET? – rhari

+0

謝謝你的建議@ rhari但同樣的事情.. – cpk

回答

0

如果你的API響應是

{"user": {"login": 22000,"name": "Test Account - C K (Dev)","native_name":ull,"email": null,"identity": null,"password_last_updated_at": null,"phone": null,"balance": 0}} 

然後爲你調用的返回類型應該是用戶,而不是User.UserBean

+0

是的,我知道這是錯誤的非常感謝你@rhari – cpk

+0

如果它的工作,接受它:) – rhari

+0

o對不起,我是新的堆棧: ) – cpk