首页 > 解决方案 > 如何使用 jq 从 JSON 中提取变量键及其值?

问题描述

如果我有一个带有如下变量键名的 JSON 文件:

{   
    "john": {"age": 40, "nickname": "jo"},
    "mary": {"age": 50, "nickname": "mo"}
}

我如何使用jq它们的一些值来提取键?

示例:提取姓名及其年龄:

"john": 40
"mary": 50

标签: jsonjq

解决方案


在您提到的特定情况下,可以使用以下过滤器:

to_entries[] | "\"\(.key)\": \(.value.age)"

将 -r 命令行选项(例如 jq -rf program.jq)与您的输入一起使用会产生:

"john": 40
"mary": 50

也可以看看:

使用jq递归提取对象值和父键名


推荐阅读