Android 改型2.0中的嵌套Json解析

Android 改型2.0中的嵌套Json解析,android,json,retrofit2,Android,Json,Retrofit2,解析嵌套json时遇到问题。我正在使用翻新2.0。这是我要解析的json格式: { "type": "All DONE", "status": "SUCCESS", "statusCode": "200", "statusMessage": "Contacts synced successfully", "data": { "__v": 0, "uuid": "584d632d87f0c01c44262da4", "mobile": "882471",

解析嵌套json时遇到问题。我正在使用翻新2.0。这是我要解析的json格式:

{
  "type": "All DONE",
  "status": "SUCCESS",
  "statusCode": "200",
  "statusMessage": "Contacts synced successfully",
  "data": {
    "__v": 0,
    "uuid": "584d632d87f0c01c44262da4",
    "mobile": "882471",
    "name": "Manit",
    "globalChecksum": "snfvsjnvrjnvlwkrnsfwlkrnfwk",
    "_id": "584d632d87f0c01c44262da8",
    "contacts": [
      {
        "name": "CC",
        "mobile": "9876281",
        "checksum": "jkndvsjlsnd",
        "_id": "584d632d87f0c01c44262da5"
      },
      {
        "name": "CC",
        "mobile": "123456789",
        "checksum": "jkndvsjlsnd",
        "_id": "584d632d87f0c01c44262da6"
      }
    ]
  }
}
这是我用来解析这个json的代码:

UsersInterface usersInterface = ApiClient.getClient().create(UsersInterface.class);
    Call<SyncTableResponse> call = usersInterface.syncContacts(json);
    call.enqueue(new Callback<SyncTableResponse>() {
        @Override
        public void onResponse(Call<SyncTableResponse> call, retrofit2.Response<SyncTableResponse> response) {
            if(response.isSuccessful()){
                Log.d("RESPONSE", String.valueOf(response.body()));

                String type = response.body().getType();
                String status = response.body().getStatus();
                String status_code = response.body().getStatus_code();
                String status_message = response.body().getStatus_message();

                Log.d("RESPONSE", type);
                Log.d("RESPONSE", status);
                Log.d("RESPONSE", status_code);
                Log.d("RESPONSE", status_message);

                JSONObject data = response.body().getData();

                Log.d("DATA", response.body().toString());
                if(status_code.equals(Constants.SUCCESS)){
                    _data = data;
                    String mobile = null;
                    try {
                        mobile = data.getString("mobile");
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    Log.d("DATA!", "Mobile: "+mobile);
                    //Toast.makeText(context, "Success!", Toast.LENGTH_SHORT).show();
                }else{
                    Log.d("DATA!", "ERROR: " + status_code);
                    //Toast.makeText(context, "ERROR: " + status_code, Toast.LENGTH_SHORT).show();
                }
            }else{
                //Toast.makeText(context, "Response Unsuccessful!", Toast.LENGTH_LONG).show();
            }
        }

        @Override
        public void onFailure(Call<SyncTableResponse> call, Throwable t) {
            Log.d("RESPONSE", "FALIURE CONNECTING addUser: " + t.getMessage());
            //Toast.makeText(context, "Response Faliure!", Toast.LENGTH_LONG).show();
        }
    });
UsersInterface UsersInterface=ApiClient.getClient().create(UsersInterface.class);
Call Call=usersInterface.syncContacts(json);
call.enqueue(新回调(){
@凌驾
公共void onResponse(呼叫,改装2.响应){
if(response.issusccessful()){
Log.d(“RESPONSE”,String.valueOf(RESPONSE.body());
字符串类型=response.body().getType();
字符串状态=response.body().getStatus();
字符串状态代码=response.body().getStatus代码();
String status_message=response.body().getStatus_message();
Log.d(“响应”,类型);
Log.d(“响应”,状态);
Log.d(“响应”,状态代码);
Log.d(“响应”,状态信息);
JSONObject data=response.body().getData();
Log.d(“DATA”,response.body().toString());
if(状态代码等于(常量成功)){
_数据=数据;
字符串mobile=null;
试一试{
mobile=data.getString(“mobile”);
}捕获(JSONException e){
e、 printStackTrace();
}
Log.d(“数据!”,“手机:+Mobile”);
//Toast.makeText(上下文,“Success!”,Toast.LENGTH_SHORT.show();
}否则{
Log.d(“数据!”,“错误:+状态代码);
//Toast.makeText(上下文,“错误:+status_code,Toast.LENGTH_SHORT).show();
}
}否则{
//Toast.makeText(上下文,“响应不成功!”,Toast.LENGTH_LONG.show();
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
Log.d(“RESPONSE”,“faliureconnectingadduser:+t.getMessage());
//Toast.makeText(上下文,“Response Faliure!”,Toast.LENGTH_LONG.show();
}
});

问题是,每当我使用此代码时,我都会得到
类型
状态
状态代码
状态消息
,但是
数据
总是空的。

使用
gson
库(与
改型
一起工作)…将使您的生活更加轻松,我可以使用jackson进行改型解析,快速创建与json结果相同的POJO,并使用
gson
将json结果转换为POJO。我会尽力让你知道的。。感谢使用
gson
library(与
reformation
一起使用)…将使您的生活更加轻松我使用jackson进行解析,它可以快速创建与json结果相同的POJO,并使用
gson
将json结果转换为POJO。我会尽力让你知道的。。谢谢