jsonjq

Get outputs from jq on a single line


I got below output using: https://stackoverflow.com/a/40330344

 (.issues[] | {key, status: .fields.status.name, assignee: .fields.assignee.emailAddress})

Output:

 {  
   "key": "SEA-739",
   "status": "Open",
   "assignee": null
 }
 {
   "key": "SEA-738",
   "status": "Resolved",
   "assignee": "user2@mycompany.com"
 }

But I need to parse each and every line but it's tough to identify which assignee is for which key as far as key group is concerned. Is this possible to make one bunch in one row using jq?

Expected output:

{ "key": "SEA-739", "status": "Open", "assignee": null }
{ "key": "SEA-738", "status": "Resolved", "assignee": "user2@mycompany.com"}

OR

{ "SEA-739", "Open", null }
{ "SEA-738", "Resolved", user2@mycompany.com }

Solution

  • -c is what you likely need

    Using the output you posted above, you can process it further:

    jq -c . input
    

    To Give;

    {"key":"SEA-739","status":"Open","assignee":null}
    {"key":"SEA-738","status":"Resolved","assignee":"user2@mycompany.com"}
    

    Or you can just change your original command

    FROM

    jq -r '(.issues[] | {key, status: .fields.status.name, assignee: .fields.assignee.emailAddress})'
    

    TO

    jq -c '(.issues[] | {key, status: .fields.status.name, assignee: .fields.assignee.emailAddress})'