如何用jq连接数组元素

How to join array elements with jq

我正在尝试从 json 输出中以特定格式生成 .csv。 JSON如下:

{
  "expand": "names,schema",
  "startAt": 0,
  "maxResults": 50,
  "total": 1,
  "issues": [
    {
      "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
      "id": "42202",
      "self": "https://www.myjira.com/jira/rest/api/2/issue/42202",
      "key": "JIRAISSUE-369",
      "fields": {
        "fixVersions": [
          {
            "self": "https://www.myjira.com/jira/rest/api/2/version/15701",
            "id": "15701",
            "name": "MR1",
            "archived": false,
            "released": false,
            "releaseDate": "2014-06-10"
          },
          {
            "self": "https://www.myjira.com/jira/rest/api/2/version/15702",
            "id": "15702",
            "name": "MR2",
            "archived": false,
            "released": false,
            "releaseDate": "2014-04-14"
          }
        ],
        "status": {
          "self": "https://www.myjira.com/jira/rest/api/2/status/3",
          "description": "This issue is being actively worked on at the moment by the assignee.",
          "iconUrl": "https://www.myjira.com/jira/images/icons/statuses/inprogress.png",
          "name": "In Progress",
          "id": "3",
          "statusCategory": {
            "self": "https://www.myjira.com/jira/rest/api/2/statuscategory/4",
            "id": 4,
            "key": "indeterminate",
            "colorName": "yellow",
            "name": "In Progress"
          }
        }
      }
    }
  ]
}

我想要一个以逗号分隔的列表,其中 fixVersions 的元素以逗号分隔。我已经走到这一步了。

curl -X GET -H "Content-Type: application/json" -k "https://www.myjira.com/jira/rest/api/2/search?jql=filter%3D60100&fields=key,status,fixVersions" -u user1 | jq -r '.issues[] | .key + "," + .fields.status.name + "," + .fields.fixVersions[].name'

输出:

JIRAISSUE-369,In Progress,MR1
JIRAISSUE-369,In Progress,MR2

期望的输出:

JIRAISSUE-369,In Progress,MR1,MR2

如何将每个 .issues.fixVersions[].name 和末尾的逗号分隔开?

可以使用join()

jq '.issues[] | [.key , .fields.status.name , .fields.fixVersions[].name] | join(",")'

Try it online!