代码之家  ›  专栏  ›  技术社区  ›  one-liner

jq-无法从google safebrowsing json响应中提取键值

  •  0
  • one-liner  · 技术社区  · 8 年前

    所以我读了 jq 教程并使用 github json 并提取了其他一些键的一些值 我想我理解语法的工作原理 。不幸的是,在Google上尝试使用它时,什么都不起作用 safe-browsing json 回答下面是存储在变量中的完整响应(对来自 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"
    

    提前谢谢。

    1 回复  |  直到 8 年前
        1
  •  0
  •   peak    8 年前

    。匹配项。威胁类型

    .matches 是一个数组,因此您必须使用 [] 要扩展它,例如:

    .matches[].threatType
    

    。威胁类型

    此尝试可以使用 .. ,例如。

    .. | .threatType? // empty
    

    。[]|。威胁类型

    无评论:-)

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

    你的意思可能是:

    .matches[] | {type: .threatType}
    

    p、 s。

    您可能想使用 debug 帮助调试/了解发生的情况。

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

    推荐文章