1. ホーム
  2. json

[解決済み] jqの出力を一行で取得する

2022-11-08 04:11:14

質問

以下のような出力が得られました。 https://stackoverflow.com/a/40330344

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

出力します。

 {  
   "key": "SEA-739",
   "status": "Open",
   "assignee": null
 }
 {
   "key": "SEA-738",
   "status": "Resolved",
   "assignee": "[email protected]"
 }

しかし、一行一行を解析する必要があるのですが、キーグループに関してはどのassigneeがどのキーのものかを特定するのは厳しいです。これはjqを使って1行に1束にすることは可能でしょうか?

期待される出力

{ "key": "SEA-739", "status": "Open", "assignee": null }
{ "key": "SEA-738", "status": "Resolved", "assignee": "[email protected]"}

または

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

どのように解決するのですか?

-c は、おそらくあなたが必要とするものです

上に投稿された出力を使って、さらに加工することができます。

jq 

-c

 入力

与えること。

{"key":"SEA-739","status":"Open","assignee":null}
{"key":"SEA-738","status":"Resolved","assignee":"[email protected]"}

または、元のコマンドを変更するだけでも良い

FROM

jq 

-r

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

jq 

-c

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