Java 使用多返回类型json对象进行Gson解析
我试图解析一个json对象,当它好的时候是int,当它不好的时候是string,下面是一个例子: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
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,这是一项艰巨的工作。您可能需要一个新问题显示一些代码。