給定一個 JSON,如:
[
{
"items": [1, 2, 3]
},
{
"items": [3, 4]
},
{
"items": [8, 9]
}
]
你如何items與 JQ連接成一個單一的陣列,如:
[
1,
2,
3,
3,
4,
8,
9
]
這個例子的游樂場:https : //jqplay.org/s/r1RvAir27V
我需要它來計算所有陣列的長度。
uj5u.com熱心網友回復:
使用flatten:
map(.items) | flatten
演示
或者,map()在items瞬間
map(.items[])
演示
或許多其他選項之一,例如:
[ .[].items ] | add[ .. | scalars ][ .[][][] ]
所有這些命令都會產生:
[
1,
2,
3,
3,
4,
8,
9
]
uj5u.com熱心網友回復:
在這種特殊情況下構造陣列的許多方法之一是:
[.[][][]]
這具有簡潔的優點,而不是使用
flatten,只有在充分理解其語意的情況下才能使用。
但是,由于最終目標是對元素進行計數,因此最好避免完全構建陣列,例如使用
def add(s): reduce s as $x (null; . $x);
現在你有另一個選擇范圍,例如
add(..|objects|.items|length)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/377966.html
