JsonReader 不能正确解析字符串数组
JsonReader don't parse correctly String Array
我正在使用来自 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);
我正在使用来自 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);