jq - jq:我可以在代码本身中使用参数的名称吗?
问题描述
有没有办法在代码中使用参数的名称?
例如,这个命令:
jq -n --arg name value '{($name): $name}'
有这个输出:
{
"value": "value"
}
是否有可能获得此输出?:
{
"name": "value"
}
解决方案
如果您删除($name):
JQ 将使用该名称作为键后备:
$ jq -n --arg name value '{$name}'
{
"name": "value"
}
$
{$x}
: 介绍的缩写是哪个版本的{"x": $x}
?1.5版
从对象构造({}
)文档:
该值可以是任何表达式(尽管您可能需要将其括在括号中,例如,如果它包含冒号),它将应用于
{}
表达式的输入(请记住,所有过滤器都有一个输入和一个输出)。{foo: .bar}
{"foo": 42}
如果将 JSON 对象{"bar":42, "baz":43}
作为其输入,将生成 JSON 对象。您可以使用它来选择对象的特定字段:如果输入是具有“user”、“title”、“id”和“content”字段的对象,而您只需要“user”和“title”,则可以写{user: .user, title: .title}
因为这很常见,所以有一个快捷语法:
{user, title}
推荐阅读
- asp.net - 为什么我的 2 个 Livecharts 笛卡尔实例不起作用?
- apache-flink - Flink 从单个 jar 运行多个作业
- software-design - 如何实现开闭原则?
- typescript - 2个for循环完成后如何返回值?
- c# - 从任务管理器中终止时,Windows 服务 C# 不会在停止时调用方法
- sql - 如何使用不使用 sql.Tx 的现有存储库在 Go 中包装 SQL 事务?
- r - 为什么 plot_ly in plotly 绘制曲面图的 id 列?
- command-line - Git Bash 不记得我设置的家
- spring-boot - JdbcPagingItemReader vs JpaPagingItemReader 哪个更好用
- asp.net-core - 覆盖 SignInManager 在启动时引发错误