Function 使用变量键名重构jq?

Function 使用变量键名重构jq?,function,key,refactoring,jq,Function,Key,Refactoring,Jq,有没有办法将jq重构成函数 重构前: jq ' .them ."keyName" ' ./some.json 重构后: def getThese(x): .them .$x; 在~/.jq 然后用 jq ' getThese("keyName") as $i | $i ' ./some.json 上面的重构似乎不起作用(有办法吗?) 如果y是变量,缩写“.x.y”将不起作用。请改用语法“.x |[y]” 在这种情况下,“E as$i |$i”可以写成“E” 您的定义应该是: 或者使用不同

有没有办法将
jq
重构成函数

重构前:

jq ' .them ."keyName" ' ./some.json
重构后:

def getThese(x): .them .$x;
~/.jq

然后用

jq ' getThese("keyName") as $i | $i ' ./some.json
上面的重构似乎不起作用(有办法吗?)

  • 如果y是变量,缩写“.x.y”将不起作用。请改用语法“.x |[y]”

  • 在这种情况下,“E as$i |$i”可以写成“E”

  • 您的定义应该是:

  • 或者使用不同的语义(并且需要jq的最新版本):

  • 另一种方法是将
    getThem
    定义为:
  • 这将允许您为具有非异常名称的键编写:
    getThem(.keyName)

    def getThese(x): .them | .[x];
    
    def getThese($x): .them | .[$x];
    
    def getThem(f): .them | f;