java - 如何从片段中的 JSON 响应中的对象获取数据
问题描述
如何GET
使用 Fragment 或xml
Retrofit 接口和改造客户端从改造 android 的方法中获取“描述”,完整代码实际上我遇到了一些问题。
我正在尝试一些时间,但我无法解决这个问题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 对象中获取描述。
解决方案
为 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) {
}
}
推荐阅读
- php - 在查询中选择与匹配列匹配的记录
- .htaccess - htaccess 重写 url 以隐藏变量
- javascript - 从多行文本 HTML 编辑器 Sharepoint 2010 中的自定义列表中获取行数据
- node.js - 了解 .npmrc
- c# - 网络核心:从 Microsoft.AspNetCore.Hosting.IWebHostBuilder 转换为 'Microsoft.AspNetCore.Hosting.IWebHost'
- html - 如何防止一列在窗口调整大小时与另一列重叠?
- python - 无法解析来自 IBM Watson Speech To Text 的 JSON 输出
- java - Spring Boot - 批量更新单独插入记录而不是批量插入
- jquery - 在 TypeScript 中安装 jQuery 时出错
- php - 根据复选框输入和文本输入自动添加 SQL 查询 - 尝试构建搜索过滤系统