GSON对同一键的值不同

时间:2016-08-29 06:22:22

标签: java android gson

我目前正在为我的Android项目使用Gson和Retrofit,它自动解析我所需的API。但是,我意识到API包含一个值,它可以是API中不同类型数据的布尔值或对象。

例如

    ...
        {
          "media": false,
        },
        {
          "media": {
            "mp4": "http://sample.com/something.mp4",
"jpg": "http://sample.com/something.jpg",
         }
        },
    ...

我的Gson模型究竟应该是什么样的?

@SerializedName("media")
Object images;

1 个答案:

答案 0 :(得分:0)

使用Object解析没有错。使用解析后的数据时,只需使用instanceof来检查数据的类型。

例如:object instanceof Boolean表示布尔值。

修改 为url创建一个模型类。喜欢:

public class Urls {

@SerializedName("mp4")
private String mp4Url;

@SerializedName("jpg")
private String jpgUrl;

public String getMp4Url() {
    return mp4Url;
}

public String getJpgUrl() {
    return jpgUrl;
}

}

现在检查

if(parsedObject instanceof Urls) {
    Urls urls = (Urls) parsedObject;
    urls.getMp4Url;
}