提取JSON中特定重复键的所有值
我有一个大约4500行的巨大json文件。 我希望提取所有名为“value”的键的值。 json路径的级别不同 JSON示例:提取JSON中特定重复键的所有值,json,parsing,nested,key,jq,Json,Parsing,Nested,Key,Jq,我有一个大约4500行的巨大json文件。 我希望提取所有名为“value”的键的值。 json路径的级别不同 JSON示例: { k1:v1, k2:v2, k3:v3, k4:{ k5:v5, k6:{ k7:v7, value:"value1" } } k8:v8, value:"value2" } 有多个这样的“值”标记 有没有一种方法可以使用jq获得所有的值?使用 下面是一个稍短的变体,它使用可选的对
{
k1:v1,
k2:v2,
k3:v3,
k4:{
k5:v5,
k6:{
k7:v7,
value:"value1"
}
}
k8:v8,
value:"value2"
}
有多个这样的“值”标记
有没有一种方法可以使用jq获得所有的值?使用
下面是一个稍短的变体,它使用可选的对象标识符和可选操作符以及递归下降
。|。价值?//空的
示例输出(使用更正的JSON示例)
请注意,如果“value”键可能为空,则此快捷方式将不会产生相同的输出,因为当“value”键丢失时,/
无法区分null
的“value”和null
运算符生成的null
。这是一个问题,然后使用has
测试“value”键是否存在更好
.. | objects | if has("value") then .value else empty end
"value2"
"value1"