我有一组用户,每个用户都有几个角色。该数组的示例如下所示。
[
{
id: 1,
username: 'john',
roles: [
{id: 500, name: 'Admin'},
{id: 501, name: 'Owner'}
]
},
{
id: 2,
username: 'joe',
roles: [
{id: 500, name: 'Admin'},
]
},
{
id: 3,
username: 'june',
roles: [
{id: 502, name: 'User'},
]
}
]
我正在尝试通过使用jmesPath获取所有具有管理员角色的用户。我尝试过[?roles[].name=='Admin']
,但这给出了一个null
值。用jmesPath可以做到这一点吗?如果可以,你能给我这个例子的表达式吗?
发布于 2017-08-16 08:05:33
我使用了这个例子和你的数据
http://jmespath.org/examples.html#filtering-and-selecting-nested-data
我让它用这个表达式工作
[?roles[?name=='Admin']]
发布于 2017-08-16 07:48:21
您可以使用以下命令使用普通JavaScript获得相同的结果:
假设您的数组存储在var users = ....
users.filter((i)=> i.roles.some((s) => s.name === "Admin"))
https://stackoverflow.com/questions/45702945
复制相似问题