无法使用 jq 过滤 JSON 输出。我正在使用卷曲

Unable to filter JSON output using jq. I am using CURL

我无法过滤以下内容。

我需要找出以下 JSON 文件的名称标签下以 "SnapshotSet" 开头的名称的数量。

示例 - "name": "SnapshotSet.1475076959480"

作为第一步,我尝试过滤掉所有以 SnapshotSet 开头的名称...但收到以下错误。

jq'.snapshot-sets[]' testjq 错误:集合未定义

但是当我过滤掉链接时,我能够得到一个输出

  jq '.links[]' testjq
{
  "href": "https://test.com/api/json/v2/types/snapshot-sets/",
  "rel": "self"
}

这个名字有什么关系吗"snapshot-sets"?

请在下面找到 JSON 文件。

{
"links": [
    {
        "href": "https://test.com/api/json/v2/types/snapshot-sets/",
        "rel": "self"
    }
],
"snapshot-sets": [
    {
        "href": "https://test.com/api/json/v2/types/snapshot-sets/1",
        "name": "SnapshotSet.1475076959480"
    },
    {
        "href": "https://test.com/api/json/v2/types/snapshot-sets/3",
        "name": "SnapshotSet.1475165496304"
    },
    {
        "href": "https://test.com/api/json/v2/types/snapshot-sets/2",
        "name": "SnapshotSet.1475158265437"
    },
    {
        "href": "https://test.com/api/json/v2/types/snapshot-sets/63659",
        "name": "server1a_b_c_STFS1474869600618"
    },

here 所述,当键包含 - 字符时,不能使用缩写形式 .keyname

您可以运行以下操作从您的文件中获取所有名称的列表:

jq '."snapshot-sets"[].name' testjq