2016-08-26 29 views
3

在此問題底部的示例JSON中,如何使用JMESPath計算數組"Tags"中的鍵/值對的數量?使用JMESPath計算數組中實例的數量

例如,下面的表達式創建包含隨後的富[值在Foo對象元件的總數量的陣列 -

按照JMESPath documentation,我可以使用count()功能執行此「酒吧」]。

但是,看起來文檔不正確。使用JMESPath網站,查詢Reservations[].Instances[].[count(@), Tags] yeilds結果[ [ null ] ]。然後,我通過AWS命令行測試,並返回一個錯誤 -

未知函數:COUNT()

是否有真正做這個使用JMESPath的一種方式?

例JSON -

{ 
    "Reservations": [ 
     { 
      "Instances": [ 
       { 
        "InstanceId": "i-asdf1234", 
        "InstanceName": "My Instance", 
        "Tags": [ 
         { 
          "Value": "Value1", 
          "Key": "Key1" 
         }, 
         { 
          "Value": "Value2", 
          "Key": "Key2" 
         }, 
         { 
          "Value": "Value3", 
          "Key": "Key3" 
         }, 
         { 
          "Value": "Value4", 
          "Key": "Key4" 
         } 
        ] 
       } 
      ] 
     } 
    ] 
} 

回答

2

這裏的答案是JMESPath文檔是令人震驚的,出於某種原因,我看到過時的文檔(檢查屏幕的右下角,看看有什麼版本,正在查看

我能做什麼,我需要使用length()函數來完成 -

Reservations[].Instances[].Tags[] | length(@) 
+0

另一種選擇: '長度(RESER vations []。Instances []。Tags [])'' – haschdl