使用Gson解析带有int数组的Json数组

时间:2014-07-23 14:33:26

标签: android json gson

我正在尝试解析这个数组:

[{"style_image":"","count":5,"color":"red","ClusterName":"cluster1","CID":"[98,99,96,16,95]"},
{"style_image":"","count":1,"color":"red","ClusterName":"cluster2","CID":"[91]"}]

我正在使用"CID":"[98,99,96,16,95]"对象。如果我的对象看起来像这样,我会得到JsonParseException例外:

@SerializedName("ClusterName")
private String name;
private String color;
@SerializedName("CID")
private List<Integer> levelOneIDs;
private int count;
private String style_image;

或者这个:

@SerializedName("ClusterName")
private String name;
private String color;
@SerializedName("CID")
private int[] levelOneIDs;
private int count;
private String style_image;

如何使用对象中的整数数组解析对象?这似乎很容易,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

问题是"[98,99,96,16,95]"不是JSON数组 - 它是一个字符串(注意数组周围的引号)。

这将正确解析:

@SerializedName("CID")
private String levelOneIDs;

但是,这显然不会为您提供您正在寻找的整数列表。您可以让GSON解析其余的JSON并自己处理解析该字段,或者您可以等待GSON将其解析为字符串,然后自己用整数填充第二个字段。

如果您对使用的API如何生成此JSON有任何意见,则应更新它以输出正确的JSON数组。