处理可能带有不同类型值的JSON字段,Android

时间:2017-05-26 02:22:28

标签: json retrofit2 android gson

当我使用此终结点从reddit获取列表时,https://www.reddit.com/r/Android/new/.json,我会收到一个帖子列表,如果帖子没有,则会有edited字段false已被编辑,或者如果有的话,时间戳很长。

如何使用Retrofit和Gson正确反序列化此列表,以便将此类型差异考虑在内?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

    public class PostDeserializer implements JsonDeserializer<Post> {
    @Override
     public Post deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
       throws JsonParseException {

        boolean notEdited = json.get("edited").getAsString().notEquals("False");

       if (notEdited) {
            json.remove("edited")
        }

        //create new Post and then return it

   }
}