【发布时间】:2021-01-14 18:11:24
【问题描述】:
这是我的第一篇文章,如果不完善请见谅。
我有如下的 json。它由两部分组成。第一部分包含有关用户的信息(id、全名和电子邮件),第二部分包含团队用户所属的信息。 (身份、团队、角色) 我想得到一个对象,它包含:id、fullName、emaila、team 和 role。我可以做到,但前提是用户属于一个团队。如果用户属于多个团队 - 我无法处理。
在我的 json 下面:
[
{
"id": "user1",
"fullName": "User One",
"email": "user.one@my.mail.com"
},
{
"id": "user2",
"fullName": "User Two",
"email": "user.two@my.mail.com"
},
{
"id": "user1",
"team": "Team_A",
"role": "TEAM_MEMBER"
},
{
"id": "user1",
"team": "Team_B",
"role": "TEAM_ADMIN"
},
{
"id": "user2",
"team": "Team_B",
"role": "TEAM_ADMIN"
}
]
当我使用时:group_by(.id)[] | add
我明白了:
{
"id": "user1",
"fullName": "User One",
"email": "user.one@my.mail.com",
"team": "Team_B",
"role": "TEAM_ADMIN"
},
{
"id": "user2",
"fullName": "User Two",
"email": "user.two@my.mail.com",
"team": "Team_B",
"role": "TEAM_ADMIN"
}
这几乎是我想要实现的目标。我的目标是:
{
"id": "user1",
"fullName": "User One",
"email": "user.one@my.mail.com",
"team": "Team_A,
"role": "TEAM_MEMBER"
},
{
"id": "user1",
"fullName": "User One",
"email": "user.one@my.mail.com",
"team": "Team_B",
"role": "TEAM_ADMIN"
},
{
"id": "user2",
"fullName": "User Two",
"email": "user.two@my.mail.com",
"team": "Team_B",
"role": "TEAM_ADMIN"
}
我也试过reduce,但没有成功。
我做了很多尝试,但都没有达到预期的效果。
如何使用jq?
提前致谢,
krzyhon
【问题讨论】:
-
您显示的预期输出不是有效的 JSON。请说清楚。你想要一个带有“id”键的对象的 JSON 数组吗?一个流?还有什么?