2017-01-06 6 views
1

JMESPathを使用すると、入力内に複数のキー/値のペアが存在することに基づいて出力をフィルタリングできますか?たとえば、以下のJSONから複数のキーと値のペアの存在に基づくフィルタ出力

、私は何をしたいのですがTags内でこれらのキー/値のペアが含まれているオブジェクトのみを抽出している -

環境/ ABC
プロジェクト/ Project2の

最も近いのは、一致するタグを1つ選択することですが、残りのオブジェクトも必要です。また、他のキー/値のペアと照合する必要があります。

ここで

は、いくつかの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']] 'それは魅力的に働いています。 –

関連する問題