jq - 如何以正确的顺序打印 JSON 数组的整个索引,而不是一个接一个地打印所有特定字段?
jq - How do I print the entire index of a JSON array in the correct order, instead of printing all of one specific field one after each other?
我有以下 JSON:
{
"family_name": "The Brown Family",
"members": [
{
"name": "James",
"age": 42
},
{
"name": "Sarah",
"age": 43,
}
]
}
{
"family_name": "The Smith Family",
"members": [
{
"name": "Thomas",
"age": 32
},
{
"name": "Jane",
"age": 30,
}
]
}
我想打印每个家庭的姓氏,然后打印'members'中包含的每个索引。我在 JQ 中尝试了以下内容。
echo $myJson | jq -r '"\("Family Name: ") \(.family_name)", "\("Member Name: ") \(.members[].name)", "\("Age: ") \(.members[].age)", "\n"'
我希望这会打印出以下内容:
Family Name: The Brown Family
Member Name: James
Age: 42
Member Name: Sarah
Age: 43
Family Name: The Smith Family
Member Name: Thomas
Age: 32
Member Name: Jane
Age: 30
然而,它打印:
Family Name: The Brown Family
Member Name: James
Member Name: Sarah
Age: 42
Age: 43
Family Name: The Smith Family
Member Name: Thomas
Member Name: Jane
Age: 32
Age: 30
如何更改我的 jq 脚本以按正确的顺序生成正确的输出?谢谢。
您可以使用以下命令:
jq -r '"Family Name: \(.family_name)",(.members[]|"Member Name: \(.name)","Age: \(.age)")' file.json
我有以下 JSON:
{
"family_name": "The Brown Family",
"members": [
{
"name": "James",
"age": 42
},
{
"name": "Sarah",
"age": 43,
}
]
}
{
"family_name": "The Smith Family",
"members": [
{
"name": "Thomas",
"age": 32
},
{
"name": "Jane",
"age": 30,
}
]
}
我想打印每个家庭的姓氏,然后打印'members'中包含的每个索引。我在 JQ 中尝试了以下内容。
echo $myJson | jq -r '"\("Family Name: ") \(.family_name)", "\("Member Name: ") \(.members[].name)", "\("Age: ") \(.members[].age)", "\n"'
我希望这会打印出以下内容:
Family Name: The Brown Family
Member Name: James
Age: 42
Member Name: Sarah
Age: 43
Family Name: The Smith Family
Member Name: Thomas
Age: 32
Member Name: Jane
Age: 30
然而,它打印:
Family Name: The Brown Family
Member Name: James
Member Name: Sarah
Age: 42
Age: 43
Family Name: The Smith Family
Member Name: Thomas
Member Name: Jane
Age: 32
Age: 30
如何更改我的 jq 脚本以按正确的顺序生成正确的输出?谢谢。
您可以使用以下命令:
jq -r '"Family Name: \(.family_name)",(.members[]|"Member Name: \(.name)","Age: \(.age)")' file.json