java - 改造 2:在没有 Java 8 的列表中解析数据结构
问题描述
我们正在开发一个 Android 应用程序,我的任务是解析一个如下所示的 json 数据结构:
[ [{pojo}], [{pojo}], [{pojo}], [{pojo}], ....]
如您所见,pojo 是我所需要的,但它被深埋了好几层(列表-> 列表-> 第 0 位)。
我们有minSDKVersion
16 个,要使用steam
API,我们必须将它提升到我们不想要的 API 24,而且我不想导入任何外部依赖项只是为了解决这个问题
当我第一次看到这个时,我看不出你为什么要像这样构造数据并且看不到任何真正的价值,但是由于在后端更改它需要很多时间,我只需要使这项工作。
说实话,我什至不知道从哪里开始,因为由于没有字段,我无法创建一个pojo
来捕获列表,请帮助,谢谢
编辑
这是改造的接口方法:
@FormUrlEncoded
@POST("api/driverApi/driverSearchLoad.php")
Call<List<JobRequestSchema>> fetchJobRequestsHistory(
@Field("driverEmail") String driverEmail);
每次用户请求时都会调用它,我遇到问题的原因是服务器的响应形式为:
[ [{POJO}], [{POJO}], [{POJO}], [{POJO}], .... ]
我应该怎么做才能提取出 POJO?
这是我的 POJO 课程:
public class JobRequestSchema {
public JobRequestSchema(String companyName, String loadTitle, String pickUpAddress, String dropOffAddress, String details, String loadDescription, String amountOffered, String companyEmail, String timeStamp, String requestId) {
this.companyName = companyName;
this.loadTitle = loadTitle;
this.pickUpAddress = pickUpAddress;
this.dropOffAddress = dropOffAddress;
this.details = details;
this.loadDescription = loadDescription;
this.amountOffered = amountOffered;
this.companyEmail = companyEmail;
this.timeStamp = timeStamp;
this.requestId = requestId;
}
@SerializedName("id") private String id;
@SerializedName("request_id") private String requestId;
@SerializedName("business_name") private String companyName;
@SerializedName("business_email") private String companyEmail;
@SerializedName("title") private String loadTitle;
@SerializedName("details") private String details;
@SerializedName("load_description") private String loadDescription;
@SerializedName("amount_offered") private String amountOffered;
@SerializedName("pickup_address") private String pickUpAddress;
@SerializedName("dropoff_address") private String dropOffAddress;
@SerializedName("timestamp") private String timeStamp;
// getters and setters....
}
解决方案
Install the plugin in IntelliJ / Android Studio by opening Preferences -> Plugins -> Search for "Json2Pojo".
Right-click on the target package, select New -> "Generate POJOs from JSON".
Enter the root class name and enter your source JSON text.
我的建议是不要将您的数据上传到一些未知的远程网站。
并按照链接进行解析, https://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html
推荐阅读
- python - python如何使用烧瓶中的werkzeug记录器将错误消息写入错误日志和主日志
- c# - 如何在不同的 Outlook 客户端中获取相同的 MailItem 唯一属性
- python - 如何使用 ipywidget 按钮下载文件?
- c# - 异步任务中的MVVMLight WPF ProgressBar绑定
- mysql - 如何在 MySQL 5.x 中选择部分字符串
- android - Android:BottomNavigationView 图标不可见
- python-3.x - 检查输入时出错:预期 dense_28_input 有 2 维,但得到的数组形状为 (3084, 32, 32)
- node.js - 使用 nodejs 在数据库中安排作业
- android - 如何使用约束布局在一行中对齐内容
- angular - 导入 angularx-social-login 后“错误:必须从注入上下文中调用 Inject()”