json - 移动 jq 中的嵌套值

标签 json jq

我有一个这样的 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"
}

所以我不确定..

最佳答案

由于任务需要映射顶级键的值,因此应该想到 map_values:

map_values(.value)

您还可以使用 with_entries,如果您还想操作顶级键,这可能很有意义:

with_entries( .value |= .value )

关于json - 移动 jq 中的嵌套值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57055808/

相关文章:

javascript - 即使json响应成功,Ajax完成功能也不设置background-image

json - PWA 调试 chrome "add to homescreen"按钮没有执行任何操作

json - 如何删除除jq以外的所有键?

bash - 提取每个 ID 的主要号码和次要号码并生成 JSON 字符串

amazon-web-services - AWS CLI 返回带有控制代码的 JSON,导致 JQ 失败

bash - 如何在 bash 中循环遍历 jq 唯一数组?

javascript - 使用函数设置变量值的单行代码,如果为假则抛出异常

json - 无法让运算符(operator)更改 vscode 设置文件的颜色

javascript - Expect(x).toMatchSnapshot() -> 使用默认序列化程序或 JSON.stringify()?

performance - 如何提高慢速 jq 脚本的性能?