首页 > 解决方案 > 如何使用 jq 从 JSON 字符串中获取键值对

问题描述

这就是我所拥有的:

{
    "ARN": "sdfsdfsdfsdfds",
    "Name": "sdfsdfsdfsdsf",
    "VersionId": "sdfsdfsdfsdfsdf",
    "SecretString": "{\"username\":\"myusername\",\"password\":\"mypassword\"}",
    "VersionStages": [
        "AWSCURRENT"
    ],
    "CreatedDate": 1541641750.607
}

我如何mykey进出myvalue这个 JSON?

jq '.SecretString' -r给了我这个:

{"username":"myusername","password":"mypassword"}

但是我该如何myusername摆脱mypassword呢?

好的,这似乎可行,但我应该像这样将它重新输入 jq 吗?感觉我做错了:

jq '.SecretString' -r | jq '.username' -r
jq '.SecretString' -r | jq '.password' -r

标签: jsonstringobjectjq

解决方案


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

.SecretString | fromjson | .username

推荐阅读