我有一个大的JSON文件,我试图用解析它。JSON文件由有关bug的信息组成,因此它有问题键、描述和注释等内容。不过,并不是每一期都有评论。例如,下面是JSON输入的示例:
{
"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文件,然后使用我得到的问题数量来查找注释。所以,比如说,
parsedData.issues.comments.body[0][0][0]返回“注释1”。然而,
parsedData.issues.comments.body[0][1][0]返回“注释3",这是错误的。有没有办法让我看看某一特定问题是否有任何评论?我宁愿不必编辑JSON文件来添加空的注释字段,但这会有帮助吗?
发布于 2014-04-03 15:01:48
你可以这样做:
parsedData.issues.comments.collect { it?.body ?: [] }因此,它检查body,如果不存在,则返回空列表。
更新
根据问题的更新,您可以:
parsedData.projects.collectMany { it.issues.comments.collect { it?.body ?: [] } }https://stackoverflow.com/questions/22841256
复制相似问题