首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON Slurper偏移量

JSON Slurper偏移量
EN

Stack Overflow用户
提问于 2014-04-03 14:49:59
回答 1查看 300关注 0票数 1

我有一个大的JSON文件,我试图用解析它。JSON文件由有关bug的信息组成,因此它有问题键、描述和注释等内容。不过,并不是每一期都有评论。例如,下面是JSON输入的示例:

代码语言:javascript
复制
    {
   "projects": [
      {
      "name": "Test Project",
      "key": "TEST",
      "issues": [
      {
         "key": "BUG-1",
         "priority": "Major",
         "comments": [
           {
             "author": "a1",
             "created": "d1",
             "body": "comment 1"
           },
           {
             "author": "a2",
             "created": "d2",
             "body": "comment 2"
           }
         ]
      },
      {
         "key": "BUG-2",
         "priority": "Major"
      },
      {
         "key": "BUG-3",
         "priority": "Major",
         "comments": [
           {
             "author": "a3",
             "created": "d3",
             "body": "comment 3"
           }
         ]
      }
    ]
}
]
}

我有一个基于JSON解析创建问题对象的方法。当每个问题至少有一个评论时,一切都很好,但是,一旦出现一个没有评论的问题,其余的问题就会得到错误的评论。目前,我正在根据问题的总数遍历JSON文件,然后使用我得到的问题数量来查找注释。所以,比如说,

代码语言:javascript
复制
parsedData.issues.comments.body[0][0][0]

返回“注释1”。然而,

代码语言:javascript
复制
parsedData.issues.comments.body[0][1][0]

返回“注释3",这是错误的。有没有办法让我看看某一特定问题是否有任何评论?我宁愿不必编辑JSON文件来添加空的注释字段,但这会有帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-03 15:01:48

你可以这样做:

代码语言:javascript
复制
parsedData.issues.comments.collect { it?.body ?: [] }

因此,它检查body,如果不存在,则返回空列表。

更新

根据问题的更新,您可以:

代码语言:javascript
复制
parsedData.projects.collectMany { it.issues.comments.collect { it?.body ?: [] } }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22841256

复制
相关文章

相似问题

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