输出键值

时间:2019-03-10 18:29:14

标签: json bash jq

给出一个json对象(存储为bash变量$ test)

{
  "foo": {
    "name": "my foo"
  },
  "bar": {
    "name": "my bar"
  }
}

如果我想输出

{
  "foo": {
    "name": "my foo"
  }
}

好像我必须使用

$ jq '. | with_entries(select(.key == "foo"))' <<<$test
{
  "foo": {
    "name": "my foo"
  }
}

是否有更简单的方法来达到相同的结果?

2 个答案:

答案 0 :(得分:2)

是的!

jq '{foo}'

说明

{foo}{"foo": .foo}的缩写

:-)

注意

缩写形式只能用于不是jq keywords的键名(例如if)。但是:

$ jq -n '{"if"}'
{
  "if": null
}

答案 1 :(得分:0)

或者,使用 jtc

bash $ <<<$test jtc -w[foo] -pp
{
   "foo": {
      "name": "my foo"
   }
}
bash $