JSON Slurper偏移量
我有一个很大的JSON文件,我正试图用JSON Slurper解析它。JSON文件包含关于bug的信息,因此它包含问题键、描述和注释等内容。不过,并非每一期都有评论。例如,以下是JSON输入的示例:JSON Slurper偏移量,json,groovy,Json,Groovy,我有一个很大的JSON文件,我正试图用JSON Slurper解析它。JSON文件包含关于bug的信息,因此它包含问题键、描述和注释等内容。不过,并非每一期都有评论。例如,以下是JSON输入的示例: { "projects": [ { "name": "Test Project", "key": "TEST", "issues": [ { "key": "BUG-1", "priorit
{
"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文件来添加空的注释字段,但这会有帮助吗?您可以这样做:
parsedData.issues.comments.collect { it?.body ?: [] }
因此,它检查主体
,如果不存在,则返回一个空列表
更新根据问题的更新,您可以执行以下操作:
parsedData.projects.collectMany { it.issues.comments.collect { it?.body ?: [] } }
谢谢但其中的索引信息在哪里呢?我们怎么知道它在看哪个问题?不知道你的意思。。。第一个列表将包含第一个注释,第二个包含第二个注释,etcI现在明白你的意思了。不过我得到了一个NullPointerException。上面写着“无法获取null对象上的属性‘comments’”。你能给出一个给出错误的json的简单有效匿名示例吗?当然,我编辑了上面的示例,因此它现在是我的精确测试json文本。