[英]How to parse json response using JQ
我需要獲取目標偵聽器已打開的目標組,以便可以將其存儲在變量中並對該目標組執行運行狀況檢查。 這是我在做什么:-
aws elbv2 --region us-east-1 describe-rules '--listener-arn=************' { "Rules": [ { "Priority": "1", "Conditions": [ { "Field": "host-header", "HostHeaderConfig": { "Values": [ "****" ] }, "Values": [ "****" ] } ], "RuleArn": "xyz", "IsDefault": false, "Actions": [ { "TargetGroupArn": "****", "Type": "forward" } ] }, { "Priority": "default", "Conditions": [], "RuleArn": "abc", "IsDefault": true, "Actions": [ { "TargetGroupArn": "***", "Type": "forward", "Order": 1 } ] } ] }
現在,我必須提取“ RuleArn”的TargetGroupArn的值:“ xyz”,這意味着我需要獲取該targetgroup arn,以便我可以在下一個命令中使用它:
aws elbv2 --region us-east-1 describe-target-health --target-group-arn=***
一旦運行,我將獲得健康目標的json輸出,我需要使用if和else條件進一步查詢。 我如何獲得jq來解析初始json以如上所述捕獲目標組arn,以便我可以將其用於將來的命令。 請注意,在我們的情況下,“ RuleArn”:“ xyz”的TargetGroupArn的值不是恆定的,因為它們一直從一個目標組切換到另一個目標組。
您可以通過兩種方式實現。 第一種是通過--query參數使用AWS CLI內置的JMES路徑。
aws elbv2 --region us-west-2 describe-rules \
'--listener-arn=************' \
--query "Rules[?RuleArn == 'xyz'].Actions[0].TargetGroupArn" --output text
如果需要的話,秒是使用jq
aws elbv2 --region us-west-2 describe-rules \
'--listener-arn=************'' \
--output json | jq -r '.Rules[]|select(.RuleArn == "xyz")| .Actions[0].TargetGroupArn'
您可以使用
var res = JSON.parse(response);
得到的字符串作為響應被解析為Json。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.