我正在使用gson的JsonReader,用于解析JSON,我的JSON解析适用于除此值以外的所有值:
"tags": [
"String1",
"String2",
"String3",
"String4"
],
这是解析代码
if(key.equals("tags")) {
try {
in.beginArray();
List<String> tags = new ArrayList();
while (in.hasNext()) {
String value = in.nextString();
tags.add(value);
}
item.setTags(tags);
in.endArray();
} catch (IOException e) {
e.printStackTrace();
}
}
in
是JsonReader对象,并且item
是我存储结果的对象。
我不明白为什么,但是当完成这一行时in.beginArray();
,in.hasNext()
有时仅一次,有时完全不成立。所以我只得到列表的第一项,否则什么也没有。
数组的格式正确吗?如果我使用JSONLint验证所有JSON,他会说JSON是正确的
您可以尝试以下代码:
String jsonArrayString = obj.getJSONArray("tags").toString();
Gson googleJson = new Gson();
List tag = googleJson.fromJson(jsonArrayString, ArrayList.class);
System.out.println(tag);
item.setTags(tag);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句