我有一个使用JMESPath解析的对象,其中属性的值是编码为字符串的JSON对象。我希望能够将该字符串属性解析为JSON对象,并仅使用JMESPath来使用它(我知道我可以使用JSON编码器解析该值)。
这是对象:
{
"ARN": "arn:aws:secretsmanager:us-east-1:xxxxx:secret:todobackend/db/credentials-AP57Kn",
"Name": "todobackend/db/credentials",
"VersionId": "c95fae54-e7b4-4c7f-80d6-2c5649f86570",
"SecretString": "{\"MYSQL_USER\":\"todobackend\",\"MYSQL_PASSWORD\":\"password\"}",
"VersionStages": [
"AWSCURRENT"
],
"CreatedDate": 1523276277.046
}
Run Code Online (Sandbox Code Playgroud)
所以我想将SecretString属性解析为JSON对象。
关于这是否可能的任何想法?
bos*_*972 -3
如果您仅使用 JMESPath,您可以尝试通过以下请求手动完成:
merge(@,{SecretString: {MYSQL_USER: 'todobackend', MYSQL_PASSWORD: 'password'}})
效果很好。但是如果你可以用其他语言来做到这一点,包括像js这样的jmespath,你可以这样做:
let jsonString = JSON.stringify(JSON.parse("{\"MYSQL_USER\":\"todobackend\",\"MYSQL_PASSWORD\":\"password\"}")).split('"').join("'").replace("{'","{").split(",'").join(",").split("':").join(":");
let mainObject = {
"ARN": "arn:aws:secretsmanager:us-east-1:xxxxx:secret:todobackend/db/credentials-AP57Kn",
"Name": "todobackend/db/credentials",
"VersionId": "c95fae54-e7b4-4c7f-80d6-2c5649f86570",
"SecretString": "{\"MYSQL_USER\":\"todobackend\",\"MYSQL_PASSWORD\":\"password\"}",
"VersionStages": [
"AWSCURRENT"
],
"CreatedDate": 1523276277.046
}
var data = jmespath.search(mainObject, `merge(@,{SecretString:${jsonString}})`)
Run Code Online (Sandbox Code Playgroud)
拆分/连接允许代码可用于像这样的另一个字符串
| 归档时间: |
|
| 查看次数: |
347 次 |
| 最近记录: |