我正在从一个具有经纬度数组的空气质量站点反序列化Json。Json看起来像这样:
{
"geo": [
-36.05035,
146.942
],
"name": "Albury South-west Slopes, Australia",
"url": "https://aqicn.org/city/australia/nsw/albury/south-west-slopes"
}我已经编写了一个自定义的反序列化程序,它可以完成这项工作,但我不能反序列化"geo": [-36.05035, 146.942]。
我的代码如下所示:
public static class City {
private Geo[] geo;
private String name;
private String url;
public Geo[] getGeo() {
return geo;
}
public void setGeo(Geo[] geo) {
this.geo = geo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
public static class Geo {
//what are the getters and setters for an array with no names just numbers?
}我被难住了,谢谢,菲尔
发布于 2020-01-19 13:51:14
您可以将Jackson与自定义的反序列化程序一起使用。作为参考,您可以查看Custom deserializer
发布于 2020-01-20 19:33:36
假设geo是List<Double>,而不是嵌套类:
public static class City {
private List<Double> geo;
private String name;
private String url;
public List<Double> getGeo() {
return geo;
}
public void setGeo(List<Double> geo) {
this.geo = geo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}然后反序列化应该是简单的:
String json = "{\"geo\":[-36.05035,146.942],\"name\": \"Albury South-west Slopes, Australia\",\"url\": \"https://aqicn.org/city/australia/nsw/albury/south-west-slopes\"}";
City city = new Gson().fromJson(json, City.class);https://stackoverflow.com/questions/59807040
复制相似问题