基于多个条件的Json路径提取,其中包括对孩子的条件以及不起作用

问题描述

我要在其中提取ID

holder.parameter =“ jira-software-users”和“ permission” =“ ADMINISTER_PROJECTS”

我正在使用$ .permissions [?(@。holder.parameter ==“ jira-software-users”)])。id或$ .permissions [?(@。permission ==“ ADMINISTER_PROJECTS”)]。id或将它们组合在一起

它不能正常工作。怎么能做到一样?我正在https://jsonpath.com/

进行测试
   {
    "permissions": [
        {
            "id": 10025,"self": "http://localhost:2990/jira/rest/api/2/permissionscheme/0/permission/10025","holder": {
                "type": "projectRole","parameter": "10002","expand": "projectRole"
            },"permission": "MANAGE_WATCHERS"
        },{
            "id": 10004,"self": "http://localhost:2990/jira/rest/api/2/permissionscheme/0/permission/10004","permission": "ADMINISTER_PROJECTS"
        },{
            "id": 10401,"self": "http://localhost:2990/jira/rest/api/2/permissionscheme/0/permission/10401","parameter": "jira-software-users","permission": "MANAGE_SPRINTS_PERMISSION"
        },{
            "id": 10740,"self": "http://localhost:2990/jira/rest/api/2/permissionscheme/0/permission/10740","holder": {
                "type": "group","expand": "group"
            },"permission": "ADMINISTER_PROJECTS"
        }
    ],"expand": "user,group,projectRole,field,all"
}

解决方法

我用

$.permissions..[?(@.permission=="ADMINISTER_PROJECTS" &&  @.holder.parameter=="jira-software-users")].id