首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用gson解析空Json数组

使用gson解析空Json数组
EN

Stack Overflow用户
提问于 2013-04-12 07:08:28
回答 1查看 2.1K关注 0票数 0

我使用gson解析JSON回复。对于正确的JSON响应,代码运行良好。但是,如果JSON回复是空数组,我的代码就会一直抱怨“期待begin_object但得到end_array”

代码语言:javascript
运行
复制
JSON response
    {
        "list" : {
                  "data" : [

                  ]
         }
    }

我的代码

代码语言:javascript
运行
复制
try {
    jsonReader.beginArray();
        do{
        jsonReader.beginObject();
            while(jsonReader.hasNext()){
                      // Parse all data
              jsonReader.endObject();
            } while(jsonReader.hasNext());
            jsonReader.endArray();
} catch (IOException e) {
//Exception
}

我知道上面的异常意味着什么,它仅仅意味着它期望数组中的对象进行处理。但是由于它是一个空数组,所以它会给出异常。

但是我看了api指南,没有方法检查JSON是空数组还是输入流中的下一个对象是对象还是数组的末尾等等。

有谁能告诉我在GSON中存在这样的方法吗?或者我们怎样才能克服这个问题?

编辑:我修改了从服务器获得的响应。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-15 04:51:36

您已经在使用适当的方法了。它是JsonReader.hasNext()方法,如JsonReader类文档中所描述的

在数组处理方法中,首先调用beginArray()来使用数组的开始括号。然后创建一个while循环,它累加值,当hasNext()为false时终止。最后,通过调用endArray()读取数组的结束括号。

您只需从do/while切换到while循环即可。当前代码要求数组中始终至少有一个对象,因为do/while在循环结束前不会检查条件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15965179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档