带动态字段的Gson序列化

时间:2017-07-03 07:43:45

标签: android json retrofit2 gson

我遇到了使用Gson 的json序列化的问题。因此,我使用带有动态返回的改进来访问API,因为json字段不一致。

返回看起来像这样:

{
        "_id": "5959bace87b42b0012dd32e3",
        "user": {
            "_id": "58fdaca91ab5920012328669",
            "email": "xxx@xxxx.xx",
            "fullName": "User full name"
            "phonenumber": "+449xxxx",
            "profilePicture": ""
        }
     }

但有时候,回报会是这样的(查看user字段):

{
            "_id": "5959bace87b42b0012dd32e3", 
            "user": "58fdaca91ab5920012328669"
}

这是我的POJO

public class Order{

   @PrimaryKey
   @SerializedName("_id")
   @Expose
   String id;

   @SerializedName("user")
   @Expose
   User user;
   //getter setter
}

任何人都知道如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:0)

我不知道它的工作与否,只需试一试:

public class Order{

   @PrimaryKey
   @SerializedName("_id")
   @Expose
   String id;

   @SerializedName("user")
   @Expose
   User user;

   @SerializedName("user")
   @Expose
   String userString;
   //getter setter
}

检查是否为null并使用哪一个可用。

编辑: check thisthis also