json - 如何使用 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
解决方案
.SecretString
不是那么秘密,但它是 JSON 对象的 JSON 字符串表示。要解析它,只需使用fromjson
,例如,您可以通过以下方式获取用户名:
.SecretString | fromjson | .username
推荐阅读
- reactjs - 使用最小和最大范围错误输入类型号
- php - 在 Symfony 3.4 中验证通过查询字符串作为整数传入的可选输入 GET 参数
- python - comparing elements of a list of list and removing
- flutter - Flutter:如何在 PageView 中嵌入多个水平 Webview
- printing - ZPL 命令条码 3 个零会产生问题
- asynchronous - 如何将 Future 转换为 Stream?
- javascript - 如何对多个 vuex 模块使用扩展运算符?
- c# - 如何使用 C# 获取频道数据
- xml - VB.NET DataGrid 列绑定
- html - 当元素使用 `renderer2.removeChild()` 从 DOM 中删除时,有什么方法可以取消订阅子组件的订阅?