首页 > 解决方案 > 关于 json 的“jq”工具的新手问题 - 如何为此创建查询?

问题描述

请帮助 JSON / jq 新手。我有一个看起来像这样的 JSON 文件:

[
   {
        "name": "my_comp_1",
        "desiredVersions": []
    },
    {
        "name": "my_comp_2",
        "desiredVersions": [{
            "name": "1.0",
            "component": {
                "name": "my_comp_2"
            }
        }]
    },
    {
        "name": "my_comp_3",
        "desiredVersions": [{
            "name": "1.1",
            "component": {
                "name": "my_comp_3"
            }
        }]
    }
]

我需要创建如下查询:'my_comp_2' 的版本是什么,在示例中应该给我'1.0'
我已经弄清楚如何从命令行获取变量,但不是 jq-query 本身。请帮忙。

标签: jsonjq

解决方案


在命令行上将值传递给的一种方法是使用该--arg选项。$name在这里,我创建了包含以下内容的变量my_comp_2

$ jq -r --arg name my_comp_2 '
  .[]
  | select(.name == $name)
  | .desiredVersions[].name
' file.json
1.0

-r输出“原始”值,不带双引号。


推荐阅读