[英]Extract all the values for a specific repeated key in JSON
我有一個大約 4500 行的巨大 json 文件。 我希望提取名為“value”的所有鍵的值。 json 路徑的級別不一樣。
JSON 示例:
{
k1:v1,
k2:v2,
k3:v3,
k4:{
k5:v5,
k6:{
k7:v7,
value:"value1"
}
}
k8:v8,
value:"value2"
}
有多個這樣的“值”標簽。
有沒有辦法使用 jq 來獲取所有值?
使用遞歸下降。
.. | objects | if has("value") then .value else empty end
這是使用可選對象標識符.foo的oguz ismail 答案的一個稍短的變體? 和替代運算符//以及遞歸下降。
.. | .value? // empty
示例輸出(使用更正的 JSON 示例)
"value2"
"value1"
注意,該快捷方式不會產生相同的輸出,如果“值”鍵可以是null作為//
不能在區分null
“值”和一個null
由所產生的?
缺少“值”鍵時的運算符。 這是一個問題,然后用has
測試“值”鍵的has
會更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.