json - 在子对象上写入带有键值的 jq 文件
问题描述
我想用 JQ 从无到有创建一个 Json 文件(Composer)。我的目标是从 jq 命令中传递的 args 设置模块和版本
{
"require" : {
"mymodule": "myversion"
}
}
我尝试过这样的事情,但我不明白为什么它不正确。
jq --arg module "themodule" --arg version "3.0" '{.require.($module):$version}'
谢谢你的帮助
解决方案
首先,您几乎肯定会想要使用-n
命令行选项;其次,module
是关键字,因此不能用作 $ 变量名称。但:
jq -n --arg m themodule --arg version "3.0" '
{require: { ($m): $version} }'
产生:
{
"require": {
"themodule": "3.0"
}
}
这里的技巧是将指定键名的表达式括在括号中。
推荐阅读
- bash - 如何禁用命令“ping”发送的错误消息?
- python - 如何通过比较给定的源和模板来更新嵌套字典的副本?
- python - 有没有使用 python 烧瓶将 sqlite 数据库显示到我的网站的解决方案?
- r - 如何使用 R 中的框从大图像中提取小数据集图像
- php - 计算巨大 TXT 文件中的字符串条目
- facebook - Facebook Graph API - 如何在图形 API 中获取调度程序帖子的所有详细信息
- vert.x - 如何使用 sendFile 方法发送位于 Internet 上的文件?
- testing - 让 Puppeteer 等待 globalSetup 完成
- python - Django + Postgres:字符串文字不能包含 NUL (0x00) 字符
- java - 关于从WebDriver内部的URL中提取参数的问题