2017-02-08 15 views
1

I次のようなJSONデータを持っている:jq出力をどのように変更できますか?

[ 
    {"name":"JSON", "good":true}, 
    {"name":"XML", "good":false}, 
    {"name":"JSON", "good":false}, 
    {"name":"HTML", "good":false}, 
    {"name":"XML", "good":true}, 
    {"name":"XML", "good":false} 
    ] 

使用して:

jq '.[] | select(.name =="XML") | .good', result will be : 
false 
true 
false 

がどのように私は記録として[偽、真、偽]と同じように作ることができますか?

答えて

2

ただ、要するに

jq --compact-output '[.[] | select(.name =="XML") | .good ]' 
[false,true,false] 
+1

もう一度お願いします。)1つの++ – Freeman

+0

感謝を。それは示した –

1

--compact-outputフラグ使用[]

jq '[.[] | select(.name =="XML") | .good]' 
[ 
    false, 
    true, 
    false 
] 

、または同じ行に、配列コンストラクタ内表現全体をラップしてみてください:配列として結果を収集して、 -cオプションを使用します。

$ jq -c 'map(select(.name =="XML") | .good)' 

出力:

[false,true,false] 
+0

ありがとう。それも動作します –

関連する問題