JsonReader无法正确解析字符串数组

伏特

我正在使用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是正确的

Android Hupp技术

您可以尝试以下代码:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章