簡體   English   中英

使用 jq 選擇鍵:值並輸出為數組

[英]Select key:value with jq and output as array

使用 jq 時,很容易選擇要輸出的鍵:值,但默認情況下數組消失。 如何將輸出保存為數組?

例子

# My JSON
my_json='{"count":2,"values":[{"name": "Hans","age": 22},{"name": "John","age": 88}]}'

# Getting names
echo $my_json | jq ".values[].name"
"Hans"
"John"

我想要的是

["Hans", "John"]

有了這樣的輸出,我可以例如通過將引號輸出到 tsv 來刪除引號。

# Output to tsv
echo '["Hans", "John"]' | jq -r '.[]'

您可以添加方括號最好c緊湊輸出)選項一起添加,以便在問題中以單行返回數組),例如

echo $my_json | jq -c '[.values[].name]'

演示

不需要兩個命令。 你可以直接得到

Hans
John

通過使用

printf %s "$my_json" | jq -r '.values[].name'

jqplay上的演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM