json - 关于 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 本身。请帮忙。
解决方案
在命令行上将值传递给jq的一种方法是使用该--arg
选项。$name
在这里,我创建了包含以下内容的变量my_comp_2
:
$ jq -r --arg name my_comp_2 '
.[]
| select(.name == $name)
| .desiredVersions[].name
' file.json
1.0
-r
输出“原始”值,不带双引号。
推荐阅读
- javascript - 仅在页面重新加载后帖子才可删除的问题
- python - matplotlib RGB图像不同的cmap?
- javascript - Reactjs:警告:组件正在更改受控
- python - “将目录标记为源根目录”到底有什么作用?
- asp.net-core - 在 JWT (Identity Server 4) 中添加 RememberMe 值作为声明
- excel - 每次都取消保护工作表以输入或删除数据,这是不可取的
- angular - 使用角度反应形式上传多个文件
- nlp - POS标记spaCy中的单个单词
- javascript - 如何使用旧 JavaScript 从表示 URL 的文本变量中正确删除此 URL 部分?
- jquery - Jquery UI .slider 不是一个函数