android - 使用动态变化的字段序列化传入的 JSON
问题描述
我在 JSON 响应中有动态变化的字段。
响应结构的一部分保持不变,因此我可以为这些字段定义 POJO,但我试图将响应的其余部分(即在带有键“字段”的 JSON 对象内)序列化为 JSONObject。但是当我记录 JSONObject 它总是空的。POJO 如下所示:
public class Project {
@SerializedName("projectid")
public String mProjectId;
@SerializedName("parentgroupid")
public String mParentGroupId;
@SerializedName("projectname")
public String mProjectName;
@SerializedName("formid")
public String mFormId;
@SerializedName("state")
public String mState;
@SerializedName("priority")
public int mPriority;
@SerializedName("headers")
public ArrayList<Header> mHeaders;
@SerializedName("fields")
public JSONObject mFields;
}
mFields 始终作为空 JSONObject 返回。
如何序列化这个动态变化的 JSONObject(它的键保持不变,但内容改变)?
解决方案
请使用JsonObject
代替JSONObject
并检查。
因为 JsonObject 可以使用 Object 定义直接创建所需类型的对象,最适合 Android 上的 JSON 解析,而 JSONObject 需要手动解析。
有关其方法和属性的更多详细信息,请参阅此JsonObject
推荐阅读
- javascript - Google idToken 负载没有名字、头像或姓氏。Angular 和 Firebase
- r - 通过 data.table 从另一个表更新因子水平
- r - 如何使用 R 将结束行字符从 Windows 转换为 Unix
- mysql - 想要在 MySQL 5.6 中生成 row_number 变量 - 但不使用 @variables
- html - 如果太长,thead 不会在每一页上重复
- vue.js - vuetify 电子重置表单
- excel - 运行时错误“53” - 宏无法找到带有土耳其语特殊符号的文档
- mysql - MariaDB 在 3 列组中查找最大值
- python - TypeError:列表索引必须是整数或切片,而不是带有 Moto DynamoDB 的 str Pytest
- raspberry-pi - 计算模块 4 + 5inch 电容式触控显示器 Waveshare DSI