Как получить пару ключ-значение из строки JSON, используя jq - PullRequest
0 голосов
/ 08 ноября 2018

Вот что у меня есть:

{
    "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

1 Ответ

0 голосов
/ 08 ноября 2018

.SecretString не так уж секретно, но это строковое представление JSON объекта JSON. Чтобы разобрать его, просто используйте fromjson, чтобы вы могли, например, получить имя пользователя с помощью:

.SecretString | fromjson | .username
...