首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用可变键名重构jq?

用可变键名重构jq?
EN

Stack Overflow用户
提问于 2017-05-31 20:29:19
回答 1查看 73关注 0票数 0

有办法将jq重构成函数吗?

重构前:

代码语言:javascript
复制
jq ' .them ."keyName" ' ./some.json

重构后的

代码语言:javascript
复制
def getThese(x): .them .$x;

~/.jq

然后用..。

代码语言:javascript
复制
jq ' getThese("keyName") as $i | $i ' ./some.json

上面的重构似乎不起作用(有办法吗?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-31 21:34:33

  1. 如果y是一个变量,缩写'.x.y‘将不起作用。使用语法'.x \\。取而代之的是你。
  2. 在这种情况下,'E as $i| $i‘可以写成'E’。
  3. 你的定义应该是:

代码语言:javascript
复制
def getThese(x): .them | .[x];

或者具有不同的语义(并且需要一个足够新的jq版本):

代码语言:javascript
复制
def getThese($x): .them | .[$x];
  1. 一种选择是将getThem定义为:

代码语言:javascript
复制
def getThem(f): .them | f;

这将允许您编写:getThem(.keyName)作为带有普通名称的键。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44294127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档