如何使用jq从JSON字符串中获取键值对

时间:2018-11-08 03:01:33

标签: json string object jq

这就是我所拥有的:

- alert: Y
  expr: prometheus_notifications_sent_total unless  prometheus_notifications_sent_total{environment="dev"}< 40
  for: 10s
  labels:
    A: A
  annotations:
    summary: "{{$value}}"

如何从此JSON中提取{ "ARN": "sdfsdfsdfsdfds", "Name": "sdfsdfsdfsdsf", "VersionId": "sdfsdfsdfsdfsdf", "SecretString": "{\"username\":\"myusername\",\"password\":\"mypassword\"}", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": 1541641750.607 } mykey

myvalue给了我这个:

jq '.SecretString' -r

但是如何从中获得{"username":"myusername","password":"mypassword"} myusername

好的,这似乎可行,但是我应该像这样将其通过管道传递回jq吗?感觉就像我做错了一样:

mypassword

1 个答案:

答案 0 :(得分:3)

.SecretString并不是那么秘密,但是它是JSON对象的JSON字符串表示形式。要解析它,只需使用fromjson,例如,您可以使用以下方式获取用户名:

.SecretString | fromjson | .username