json - 如何通过jq选择键和子对象属性?

标签 json jq

鉴于 json filter.json :

{
    "123": {
        "name": "Horst"
    },
    "789": {
        "name": "Bob"
    }
}

我想过滤每个键和名称,想要输出如下:
"123": "Horst"
"789": "Bob"

我试过:
jq .[].name,keys < filter.json 

然而它给了我错误的输出:
"Horst"
"Bob"
[
  "123",
  "789"
]

但我不知道如何将这两个输出“合并”为一个。我哪里错了?

最佳答案

This question is similar我从那里得到了最好的答案,稍微调整了一下以获得以下内容。

$ jq 'to_entries[]| {(.key): .value.name}' < /tmp/filter.json
{
  "123": "Horst"
}
{
  "789": "Bob"
}

关于json - 如何通过jq选择键和子对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40845789/

相关文章:

Android Retrofit 在获取 jsonobject 时总是返回 boolean 类型的 false 值

json - jq "strptime/1 is not implemented on this platform"尝试使用 'fromdate' 时

json - jq - 添加新字段并更新整个文件

json - jq json过滤器并保持原始结构

javascript - 在 javascript url 中附加 PHP 变量

json - Symfony 3 API REST - try catch JSON 响应格式的异常

javascript - 在 JSON 中写入 HTML 字符串

json - 在单行上从 jq 获取输出

json - 为 select() 找到的元素设置一个值,但返回整个 json

javascript - for 循环中的 if/else 语句