jq - 无法从 google 安全浏览 json 响应中提取关键值
jq - can't extract key values from google safebrowsing json response
所以我已经阅读了 jq
教程并使用了那里的 github
json
响应并提取了一些其他键的一些值所以 我认为我了解语法的工作原理。不幸的是,尝试在 Google safe-browsing
json
响应中使用它时没有任何效果。这是存储在变量中的完整响应(对 jq
教程中的 github 示例也是如此):
echo "$safeb"
{
"matches": [
{
"threatType": "MALWARE",
"platformType": "ALL_PLATFORMS",
"threat": {
"url": "http://www.wittyvideos.com"
},
"cacheDuration": "300s",
"threatEntryType": "URL"
}
]
}
...这就是我尝试过的:
echo "$safeb" | jq '.matches.threatType'
jq: error (at <stdin>:13): Cannot index array with string "threatType"
echo "$safeb" | jq '.threatType'
null
echo "$safeb" | jq '.[] | .threatType'
jq: error (at <stdin>:13): Cannot index array with string "threatType"
echo "$safeb" | jq '.[] | {type: .threatType}'
jq: error (at <stdin>:13): Cannot index array with string "threatType"
提前致谢。
.matches.threatType
.matches
是一个数组,所以你必须使用 []
来扩展它,例如:
.matches[].threatType
.threatType
可以使用 ..
挽救此尝试,例如
.. | .threatType? // empty
.[] | .threatType
无评论:-)
.[] | {type: .threatType}
你的意思可能是:
.matches[] | {type: .threatType}
p.s.
您可能想使用 debug
来帮助 debug/understand 发生什么事。
此外,以后请不要忘记描述或显示预期的输出。
所以我已经阅读了 jq
教程并使用了那里的 github
json
响应并提取了一些其他键的一些值所以 我认为我了解语法的工作原理。不幸的是,尝试在 Google safe-browsing
json
响应中使用它时没有任何效果。这是存储在变量中的完整响应(对 jq
教程中的 github 示例也是如此):
echo "$safeb"
{
"matches": [
{
"threatType": "MALWARE",
"platformType": "ALL_PLATFORMS",
"threat": {
"url": "http://www.wittyvideos.com"
},
"cacheDuration": "300s",
"threatEntryType": "URL"
}
]
}
...这就是我尝试过的:
echo "$safeb" | jq '.matches.threatType'
jq: error (at <stdin>:13): Cannot index array with string "threatType"
echo "$safeb" | jq '.threatType'
null
echo "$safeb" | jq '.[] | .threatType'
jq: error (at <stdin>:13): Cannot index array with string "threatType"
echo "$safeb" | jq '.[] | {type: .threatType}'
jq: error (at <stdin>:13): Cannot index array with string "threatType"
提前致谢。
.matches.threatType
.matches
是一个数组,所以你必须使用 []
来扩展它,例如:
.matches[].threatType
.threatType
可以使用 ..
挽救此尝试,例如
.. | .threatType? // empty
.[] | .threatType
无评论:-)
.[] | {type: .threatType}
你的意思可能是:
.matches[] | {type: .threatType}
p.s.
您可能想使用 debug
来帮助 debug/understand 发生什么事。
此外,以后请不要忘记描述或显示预期的输出。