【问题标题】:Serialize incoming JSON with dynamically changing fields使用动态变化的字段序列化传入的 JSON
【发布时间】:2019-01-29 12:28:01
【问题描述】:

我在 JSON 响应中有动态变化的字段。

响应结构的一部分保持不变,因此我可以为这些字段定义 POJO,但我正在尝试将响应的其余部分(即在带有键“字段”的 JSON 对象内)序列化为一个 JSON 对象。但是当我记录 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(它的key保持不变,但内容改变了)?

【问题讨论】:

  • 您是否从改造中得到响应?然后尝试使用JsonObject 而不是JSONObject 并检查
  • 完美!工作,非常感谢!

标签: android json serialization dynamic gson


【解决方案1】:

请使用JsonObject 而不是JSONObject 并检查。

因为 JsonObject 可以使用 Object 定义直接创建所需类型的对象,最适合 Android 上的 JSON 解析,而 JSONObject 需要手动解析。

有关其方法和属性的更多详细信息,请参阅JsonObject

【讨论】:

    【解决方案2】:

    如果使用 Retrofit,请使用 JsonObject 而不是 JSONObject。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 2017-08-09
      • 1970-01-01
      相关资源
      最近更新 更多