Json

使用 JQ 獲得簡單的分隔輸出

  • February 1, 2017

怎麼可能轉這個:

{
 "write": {
   "out": 0,
   "available": 128,
   "totalTickets": 128
 },
 "read": {
   "out": 7,
   "available": 249,
   "totalTickets": 256
 }
}

進入

0 128 128 7 249 256

使用jq?

您還可以像這樣遞歸地降低您的 JSON 樹:

>jq 'recurse|numbers' data.json
0
128
128
7
249
256

(這假設您的所有值都是數字,如果您還需要布爾值和字元串,請使用標量)

或者使用recurse的簡寫符號,即..

..|numbers

(感謝@cuonglm!)

請注意,與map|flatten方法不同,這也適用於任意嵌套的對象樹。

例如

{
 "write": {
   "out": 0,
   "available": 128,
   "totalTickets": 128
 },
 "read": {
   "out": 7,
   "available": 249,
   "totalTickets": 256,
   "details" : {
       "good": 10,
       "bad" : 20
   }
 }
}

將產生:

0
128
128
7
249
256
10
20

引用自:https://unix.stackexchange.com/questions/341783