我正在用jq来解析json文件。我必须在同一行中获取ID和Name,以便我可以在之后做一些逻辑。
{
"elements": [{
"id": "e20a9cd8-8683-4986-b6c0-e5fbf51cbf7f",
"name": "Mike",
"components": [{
"id": "15f959fc-6d2d-451a-a59e-430a05a1852c",
"pid": "ZZZ1"
}],
"tenantIds": null,
"productIds": null
},
{
"id": "d892f2eb-d7f3-49f8-9176-2113351cccf8",
"name": "Steve",
"components": [{
"id": "0c44c917-e0e5-4fa3-b87c-89f9ac0815b4",
"pid": "XXX3"
}],
"tenantIds": null,
"productIds": null
}
]
}
使用jq '{elements}[] | .[].id
我正在获取ID,但我找不到解决方案如何在ID旁边添加适当的名称。我试过像
{elements}[] | .[].id + " " + .[].name
和
{elements}[] | .[].id + .[].name
但这不是我的预期。
我想得到:
15f959fc-6d2d-451a-a59e-430a05a1852c Mike
d892f2eb-d7f3-49f8-9176-2113351cccf8 Steve
有什么建议吗?
谢谢!
答案 0 :(得分:2)
应用字符串连接:
jq '.elements[] | .id +" "+ .name' file
输出:
"e20a9cd8-8683-4986-b6c0-e5fbf51cbf7f Mike"
"d892f2eb-d7f3-49f8-9176-2113351cccf8 Steve"
要输出不带双引号,请使用-r
(--raw-output
)选项:
jq '.elements[] | .id +" "+ .name' -r file
e20a9cd8-8683-4986-b6c0-e5fbf51cbf7f Mike
d892f2eb-d7f3-49f8-9176-2113351cccf8 Steve