使用动态更改的字段序列化传入的JSON

时间:2018-08-23 07:30:44

标签: android json serialization dynamic gson

我在JSON响应中具有动态更改的字段。

响应的一部分结构保持不变,因此我可以为这些字段定义一个POJO,但是我试图将响应的其余部分(即在键为“ fields”的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(其键保持不变,但内容更改)?

2 个答案:

答案 0 :(得分:1)

请使用JsonObject而非JSONObject进行检查。

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

有关其方法和属性的更多详细信息,请参阅此enter image description here

答案 1 :(得分:0)

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