如何从片段中的 JSON 响应中的对象获取数据
Posted
技术标签:
【中文标题】如何从片段中的 JSON 响应中的对象获取数据【英文标题】:How to get data from object in JSON response in Fragment 【发布时间】:2019-12-04 09:39:05 【问题描述】:如何在使用 Fragment 或 xml
和 Retrofit 接口和改造客户端的改造 android 中从 GET
方法获取“描述”,完整代码实际上我遇到了一些问题。
我正在尝试一些时间,但我无法解决此问题API
。
JSON 响应。
"statuscode": 200,
"status": "true",
"cmsDetails":
"id": 2,
"title": "Privacy Policy",
"description": "<p>We, Devoid Technologies Pvt. Ltd., incorporated."
改造界面
@GET("retrieve/policy")
Call<CMSDetails> getDescription();
我想在 cmsDetails 对象中获取描述。
【问题讨论】:
“完整的代码实际上我遇到了一些问题”什么问题? 显示你的CMSDetails
【参考方案1】:
像这样为 JSON 响应创建一个模型:
public class CMS
@SerializedName("statuscode")
private String statuscode;
@SerializedName("status")
private String status;
@SerializedName("cmsDetails")
private CmsDetails cmsDetails;
public CmsDetails getCmsDetails()
return cmsDetails;
现在为 CmsDetails 创建另一个模型:
public class CmsDetails
@SerializedName("id")
private int id;
@SerializedName("title")
private String title;
@SerializedName("description")
private String description;
public String getDescription()
return description;
现在像这样创建您的端点:
public interface EndPoints
@GET("retrieve/policy")
Call<CMS> getDescriptionCms();
现在创建客户端如下:
public class RetroFitCMSClient
private static Retrofit retrofit;
private static OkHttpClient okClient;
private static final String BASE_URL = "http://test.test;
public static Retrofit getRetrofitInstance()
okClient = new OkHttpClient
.Builder()
.build();
if (retrofit == null)
retrofit = new retrofit2.Retrofit.Builder()
.baseUrl(BASE_URL)
.client(okClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
return retrofit;
现在您可以拨打电话改装电话并获得如下描述:
EndPoints service = RetroFitCMSClient.getRetrofitInstance().create(EndPoints.class);
call = service.getDescriptionCms();
call.enqueue(new Callback<CMS>()
@Override
public void onResponse(Call<CMS> call, Response<CMS> response)
if(response.isSuccessful())
String description = response.body().getCmsDetails().getDescription();
@Override
public void onFailure(Call<CMS> call, Throwable throwable)
【讨论】:
但这对 Fragment 也不起作用,如何在 Fragment 中使用请建议我。以上是关于如何从片段中的 JSON 响应中的对象获取数据的主要内容,如果未能解决你的问题,请参考以下文章
如何检查获取的响应是不是是javascript中的json对象
如何从选项卡片段中的 AsyncTask Resftful WS 加载批量数据