因此,我使用GSON从API解析JSON,但在如何让它解析数据中的动态字段方面遇到了困难。
下面是查询返回的JSON数据的示例:
{
-
30655845: {
id: "30655845"
name: "testdata
description: ""
latitude: "38"
longitude: "-122"
altitude: "0"
thumbnailURL: http://someimage.com/url.jpg
distance: 9566.6344386665
}
-
28688744: {
id: "28688744"
name: "testdata2"
description: ""
latitude: "38"
longitude: "-122"
altitude: "0"
thumbnailURL: http://someimage.com/url.jpg
distance: 9563.8328713012
}
}
我目前处理单个静态值的方法是使用一个类:
import com.google.gson.annotations.SerializedName;
public class Result
{
@SerializedName("id")
public int id;
@SerializedName("name")
public String name;
@SerializedName("description")
public String description;
@SerializedName("latitude")
public Double latitude;
@SerializedName("longitude")
public Double longitude;
@SerializedName("altitude")
public Double altitude;
@SerializedName("thumbnailURL")
public String thumbnailURL;
@SerializedName("distance")
public Double distance;
}
然后,我可以简单地使用GSON来解析它:
Gson gson = new Gson();
Reader reader = new InputStreamReader(source);
Result response= gson.fromJson(reader, Result.class);
我知道这对子数据有效,因为我可以很容易地查询和获得单个条目并进行解析,但数组中每个值的随机整数值又如何呢?(即30655845和2868874)
有什么帮助吗?
1条答案
按热度按时间4dbbbstv1#
根据GSON文档,您可以执行以下操作:
或者,您可以尝试为您的类编写custom serializer。
免责声明:我也没有使用GSon的经验,但有使用其他框架(如Jackson)的经验。