无法从 Google 安全浏览 JSON 响应中提取键值



所以我阅读了jq教程并从那里使用了github json响应,并提取了一些其他键的值,所以我想我理解语法是如何工作的。不幸的是,尝试在 Google safe-browsing json响应中使用它时没有任何效果。以下是存储在变量中的完整响应(对本教程中的 github 示例执行jq相同(:

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? // empty

.[] | .威胁类型

没有评论:-(

.[] |{类型: .威胁类型}

你可能的意思是:

.matches[] | {type: .threatType}

附言

你可能希望使用debug来帮助调试/了解正在发生的情况。

另外,将来,请不要忘记描述或显示预期的输出。

最新更新