Search code examples
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": "[email protected]"
 }

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": "[email protected]"}

OR

{ "SEA-739", "Open", null }
{ "SEA-738", "Resolved", [email protected] }

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":"[email protected]"}
    

    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})'