Java 从改造中获取内容
我正在使用android处理web服务。 我的URL响应如下所示: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的
{"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);
}
});