将jq中的嵌套值移动

3

我有一个这样的json:

{
  "key_1": {
    "type": "string",
    "value": "foo"
  },
  "key_2": {
    "type": "string",
    "value": "bar"
  }
}

我想以这种方式输出。
{
  "key_1": "foo",
  "key_2": "bar"
}

jq '.[].value'会给我返回值:

"foo"
"bar"

当我运行jq '(.[] = .[].value)'时,它会给我返回什么?

{
  "key_1": "foo",
  "key_2": "foo"
}
{
  "key_1": "bar",
  "key_2": "bar"
}

所以我不确定...

1个回答

5

由于该任务涉及到映射顶层键的值,因此应该想到使用map_values

map_values(.value)

你也可以使用with_entries,如果你想要操作顶级键,这可能是有意义的:

with_entries( .value |= .value )

这给了我一个带有值的数组,但是如何重构键值对象呢? - Enrichman
1
你运行了吗?这将生成您请求的键值对象! - Greg
我写了一些代码,但不确定自己写了什么!我又尝试了一次,结果完美运行!谢谢! - Enrichman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接