2017-01-06 1 views
1

JMESPath를 사용하면 입력 내에 여러 키/값 쌍이 있는지 여부에 따라 출력을 필터링 할 수 있습니까?다중 키/값 쌍이있는 필터 출력

환경/ABC
프로젝트/Project2에

- 예 내가 Tags 내에서 이러한 키/값 쌍을 포함하는 개체 만 추출하면된다 싶은 무슨 아래 JSON,에서

내가 얻을 수있는 가장 가까운 것은 일치하는 단일 태그를 선택하는 것이지만 나머지 객체도 필요하며 다른 키/값 쌍과도 일치해야합니다. -

여기

287,771,834,947,953,665,123,210 일부 exaple JSON의 입력 -

{ 
    "Stacks": [ 
     { 
      "StackId": "abc123", 
      "Tags": [ 
       { 
        "Value": "Project 1", 
        "Key": "Project" 
       }, 
       { 
        "Value": "ABC", 
        "Key": "Environment" 
       } 
      ], 
      "CreationTime": "2016-07-20T14:49:27.891Z", 
      "StackName": "TestStack1", 
      "NotificationARNs": [], 
      "StackStatus": "CREATE_COMPLETE", 
      "DisableRollback": false 
     }, 
     { 
      "StackId": "xyz123", 
      "Tags": [ 
       { 
        "Value": "Project 1", 
        "Key": "Project" 
       }, 
       { 
        "Value": "XYZ", 
        "Key": "Environment" 
       } 
      ], 
      "CreationTime": "2016-07-20T14:49:27.891Z", 
      "StackName": "TestStack2", 
      "NotificationARNs": [], 
      "StackStatus": "CREATE_COMPLETE", 
      "DisableRollback": false 
     }, 
     { 
      "StackId": "asd123", 
      "Tags": [ 
       { 
        "Value": "Project 2", 
        "Key": "Project" 
       }, 
       { 
        "Value": "ABC", 
        "Key": "Environment" 
       } 
      ], 
      "CreationTime": "2016-07-20T14:49:27.891Z", 
      "StackName": "TestStack3", 
      "NotificationARNs": [], 
      "StackStatus": "CREATE_COMPLETE", 
      "DisableRollback": false 
     } 
    ] 
} 

그리고 여기에 내가 필요로 출력 -

{ 
    "StackId": "asd123", 
    "Tags": [ 
     { 
      "Value": "Project 2", 
      "Key": "Project" 
     }, 
     { 
      "Value": "ABC", 
      "Key": "Environment" 
     } 
    ], 
    "CreationTime": "2016-07-20T14:49:27.891Z", 
    "StackName": "TestStack3", 
    "NotificationARNs": [], 
    "StackStatus": "CREATE_COMPLETE", 
    "DisableRollback": false 
} 

답변

4

당신이 사용할 수있는 중첩 된 필터 :

Stacks[? Tags[? Value=='ABC' && Key=='Environment']]

+0

브릴리언트을, 감사. 완전을 위해, 나는'Stacks [? 태그 [? 값 == 'ABC'&& Key == '환경'] && 태그 [? Value == 'Project'&& Key == 'Project2']]'그것은 매력처럼 작동합니다. –