JMESPath 是一種查詢語言,專門用於處理 JSON 物件。
以 AWS CLI 的輸出為例,JMESPath 規則和基本語法包括:
-
欄位訪問: 使用點
.
來訪問 JSON 物件中的欄位。例如,Instance.Type.InstanceType
。 -
索引列表: 透過索引來訪問列表中的元素。索引是基於零的,例如
Reservations[0].Instances[0].InstanceId
。 -
管道表示式 (
|
): 用於將一個表示式的輸出用作另一個表示式的輸入。例如,Reservations[].Instances[].Tags[] | [?Key=='Name'].Value
。 -
切片操作: 類似 Python 列表的切片,如
Reservations[0:3]
,表示訪問前三個元素。 -
過濾: 使用
[]
建立過濾表示式,找到符合特定條件的元素。例如,Instances[?State.Name=='running']
。 -
投影: 即所謂的“對映操作”,對集合中的每個元素應用一個表示式。例如,
Instances[].{id: InstanceId, type: InstanceType}
。 -
多選雜湊: 使用
{}
從多個欄位中選擇並重新命名輸出。例如,{InstanceId: InstanceId, State: State.Name}
。 -
函式: JMESPath 還包含一組函式,例如
contains()
,starts_with()
,sort()
等,用於執行更復雜的操作。
See also: jmespath.org
中文版:www.osgeo.cn