Java 从改造中获取内容

Java 从改造中获取内容,java,android,retrofit,Java,Android,Retrofit,我正在使用android处理web服务。 我的URL响应如下所示: {"data": {"cus_detail": { "id": "1", "cus_unique_id": "181612302153223", "cus_company_id": "1" } } } 主要内容: 如何从该数据中检索cus\u unique\u id?理想情况下,通过改型,您可以创建映射到JSON的

我正在使用android处理web服务。 我的URL响应如下所示:

{"data": 
    {"cus_detail":
         {
          "id": "1",
          "cus_unique_id": "181612302153223",
          "cus_company_id": "1"
         }
    }
}
主要内容:


如何从该数据中检索
cus\u unique\u id

理想情况下,通过改型,您可以创建映射到JSON的Java类,并使用这些类,而不是
回调中的
对象。我发现创建类很有帮助。然后您就可以轻松访问
cus\u unique\u id

service.getFeed(new retrofit.Callback<Data>() {
    @Override
    public void success(Data data, Response response) {
        String cus_unique_id = data.cus_detail.cus_unique_id;
        Log.v("RETROFIT",data.toString());
    }
    @Override
    public void failure(RetrofitError retrofitError) {
        System.out.println("RETROFIT_ERROR "+retrofitError);
    }
});

答案的前半部分是正确的。我不推荐第二部分。数据类中会有什么?@RonakPatel最好让Json解析器解析所有的Json,而不是让它一半解析它(到一个映射图中),然后在解析器生成的实现细节中捣乱。@GreybeardGeek:在第一种情况下,我需要为每个
json
响应创建单独的类。是吗?是的,通常的模式是有一个表示数据的“域”或“模型”对象包,这些对象映射到JSON。
public interface Retro {
   @GET("/user?format=json&method=view_profile&cus_id=1")
   void getFeed(Callback<Object> response);
}
{data={cus_detail={id=1, cus_unique_id=181612302153223, cus_company_id=1}}}
service.getFeed(new retrofit.Callback<Data>() {
    @Override
    public void success(Data data, Response response) {
        String cus_unique_id = data.cus_detail.cus_unique_id;
        Log.v("RETROFIT",data.toString());
    }
    @Override
    public void failure(RetrofitError retrofitError) {
        System.out.println("RETROFIT_ERROR "+retrofitError);
    }
});
service.getFeed(new retrofit.Callback<Object>() {
    @Override
    public void success(Object obj, Response response) {
        Map<String, Object> data = (Map<String, Object>) ((Map<String, Object>) obj).get("data");
        Map<String, Object> cus_detail = (Map<String, Object>) data.get("cus_detail");
        String cus_unique_id = (String) cus_detail.get("cus_unique_id");
        Log.v("RETROFIT",obj.toString());
    }
    @Override
    public void failure(RetrofitError retrofitError) {
        System.out.println("RETROFIT_ERROR "+retrofitError);
    }
});