[英]How to use jq to extract keys and print them a certain amount of times depending on another keys value from a JSON file
[英]How to use jq to extract variable keys and their values from JSON?
如果我有一个具有可变键名的JSON文件,例如:
{
"john": {"age": 40, "nickname": "jo"},
"mary": {"age": 50, "nickname": "mo"}
}
如何使用jq
提取具有某些值的键?
示例:提取名称及其年龄:
"john": 40
"mary": 50
在您提到的特定情况下,可以使用以下过滤器:
to_entries[] | "\"\(.key)\": \(.value.age)"
在输入中使用-r命令行选项(例如jq -rf program.jq)会产生:
"john": 40
"mary": 50
也可以看看:
尝试这个:
to_entries[] | {(.key): .value.age}
输出:
{
"john": 40
}
{
"mary": 50
}
首先将对象转换为键/值对的数组; 那么您可以对其进行迭代并一并访问键和关联的值。
$ jq 'to_entries' tmp.json
[
{
"key": "john",
"value": {
"age": 40,
"nickname": "jo"
}
},
{
"key": "mary",
"value": {
"age": 50,
"nickname": "mo"
}
}
]
$ jq 'to_entries[] | "\(.key): \(.value.age)"' tmp.json
"john: 40"
"mary: 50"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.