Java 使用多返回类型json对象进行Gson解析

Java 使用多返回类型json对象进行Gson解析,java,android,json,gson,Java,Android,Json,Gson,我试图解析一个json对象,当它好的时候是int,当它不好的时候是string,下面是一个例子: id: "11271", title: "Top Gun: An IMAX 3D Experience", year: 1986, mpaa_rating: "PG", runtime: 110, release_dates: { theater: "2013-02-08", dvd: "1998-10-20" }, ratings: { critics_rating: "Rotten", crit

我试图解析一个json对象,当它好的时候是int,当它不好的时候是string,下面是一个例子:

id: "11271",
title: "Top Gun: An IMAX 3D Experience",
year: 1986,
mpaa_rating: "PG",
runtime: 110,
release_dates: {
theater: "2013-02-08",
dvd: "1998-10-20"
},
ratings: {
critics_rating: "Rotten",
critics_score: 50,
audience_rating: "Upright",
audience_score: 48
},


id: "771270981",
title: "Identity Thief",
year: 2013,
mpaa_rating: "R",
runtime: "",
release_dates: {
theater: "2013-02-08"
},
ratings: {
critics_score: -1,
audience_score: 97
},
问题是“运行时”

问题的原因是:“java lang NumberFormatException:Invalid double:”

您肯定知道,使用Gson,您需要创建一个如下所示的类:

private int runtime;
public void setRuntime(int runtime) {
    this.runtime = runtime;
}

public int getRuntime() {

        return runtime;
    }

}

我如何欺骗程序,知道它不是我的API。

通过将
private int runtime;
更改为
private String runtime;


根据以后的操作,您可以检查它是否为int,如果是,则将其作为int处理,否则将其作为字符串处理。

通过将
私有int运行时;
更改为
私有字符串运行时;


根据您以后的操作,您可以检查它是否是int,如果是,则将其作为int处理,否则将其作为字符串处理。

谢谢,我将int改为String,并将其放入:public int getRuntime(){try{int r=Integer.parseInt(runtime);return r;}catch(numberformatception e){return 0;}这可以将所有内容转换为字符串,但有没有办法解释返回值可以是字符串或数组的实例?您可以返回
对象
,但必须通过使用
instanceof
检查它来将其转换回字符串或int,这是一项艰巨的工作。您可能需要一个新问题nd显示一些代码。谢谢,我将int改为String,并将其放入:public int getRuntime(){try{int r=Integer.parseInt(运行时);return r;}catch(NumberFormatException e){return 0;}}这可以将所有内容转换为字符串,但有没有办法解释返回值可以是字符串或数组的实例?您可以返回
对象
,但必须通过使用
instanceof
检查它来将其转换回字符串或int,这是一项艰巨的工作。您可能需要一个新问题显示一些代码。