簡體   English   中英

JSON Slurper偏移

[英]JSON Slurper Offsets

我有一個較大的JSON文件,我正在嘗試使用JSON Slurper進行解析。 JSON文件包含有關錯誤的信息,因此它具有諸如問題密鑰,描述和注釋之類的內容。 並非每個問題都有評論。 例如,以下是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解析創建Issue對象的方法。 當每個問題至少有一個評論時,一切工作都很好,但是,一旦出現一個沒有評論的問題,其余的問題將得到錯誤的評論。 我目前正在根據問題的總數來遍歷JSON文件,然后使用獲得的問題數來查找注釋。 因此,例如

parsedData.issues.comments.body[0][0][0]

返回“評論1”。 然而,

parsedData.issues.comments.body[0][1][0]

返回“評論3”,這是不正確的。 有什么辦法可以查看特定問題是否有任何評論? 我寧願不必編輯JSON文件來添加空的注釋字段,但這甚至有幫助嗎?

你可以這樣做:

parsedData.issues.comments.collect { it?.body ?: [] }

因此它檢查一個body ,如果不存在,則返回一個空列表

UPDATE
根據問題的更新,您可以執行以下操作:

parsedData.projects.collectMany { it.issues.comments.collect { it?.body ?: [] } }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM