2015-04-02 51 views
11

我想用jq把JSON對象流成JSON陣列,例如一個陣列,從如何JSON對象流轉換爲與JQ

{"a":1} 
{"b":2} 

[{"a":1}, 
{"b":2}] 

但是,這是行不通的

echo ' 
{"a":1} 
{"b":2} 
'|jq '[.]' 

,因爲我得到

[ 
    { 
    "a": 1 
    } 
] 
[ 
    { 
    "b": 2 
    } 
] 

回答

20

沾上-s選項。

$ jq -s '.' <<< '{ "a": 1 } { "b": 2 }' 
[ 
    { 
    "a": 1 
    }, 
    { 
    "b": 2 
    } 
] 

作爲另一選擇,使用inputs讀取的值是一個更靈活的選擇。您通常希望將此與-n選項一起使用,以防止第一個值過早消耗。

$ jq -n '[inputs]' <<< '{ "a": 1 } { "b": 2 }' 
+0

這太棒了!謝謝! – 2015-04-02 04:00:58