首页 > 解决方案 > 查询列表输出的 jq 语法帮助

问题描述

我需要帮助来纠正 jq 测试用例语法。以下是输出文件并尝试使用以下命令测试 ID 列表。为字符串类型提供错误索引。

[[ $(echo $output| jq -r '.output.value[] | select(.identity).id_list') == *"id2"*  ]]

output = {
   "resource_output": {

    "value": {
           "identity": [
            {
              "id_list": [
                "/subscriptions/---/id1",
                "/subscriptions/---/id2",
                "/subscriptions/--/id3"
             ],
             "principal_id": "",
             "tenant_id": "",
             "type": "managed"
           }
         ]
    }
    }

标签: jq

解决方案


您的查询与示例 JSON 不匹配,并且您没有指出您期望的输出,但是您的查询的以下变体说明了如何按照您的尝试建议的行使用selecttest处理您的数据:

echo "$output" |
  jq -r '.resource_output.identity[].id_list[] | select(test("id2"))'

输出:

/subscriptions/---/id2  

推荐阅读