You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何仅使用JMESPath解析编码为字符串的JSON对象属性

用JMESPath解析字符串格式的JSON对象

嘿,这个需求其实用JMESPath自带的from_json()函数就能搞定,不用额外工具,直接一步到位!

首先得明确:JMESPath 1.0及以上版本提供了from_json()函数,专门用来把JSON格式的字符串转换成可操作的JMESPath对象。刚好AWS相关工具(比如AWS CLI v2)里的JMESPath版本都支持这个函数,完美匹配你提到的SecretsManager场景。

举个更完整的例子,假设你的原始对象其实是这样的(补全了存JSON字符串的SecretString属性,这也是SecretsManager返回的典型结构):

{
  "ARN": "arn:aws:secretsmanager:us-east-1:xxxxx:secret:todobackend/db/credentials-AP57Kn",
  "Name": "todobackend/db/credentials",
  "VersionId": "c95...",
  "SecretString": "{\"username\":\"db-admin\",\"password\":\"MyStrongPass123\"}"
}

具体操作步骤

  • 第一步:解析字符串属性
    from_json(SecretString)就能把SecretString里的JSON字符串转换成可操作的JMESPath对象,执行后会得到:{"username":"db-admin","password":"MyStrongPass123"}

  • 第二步:直接操作解析后的对象
    如果要提取里面的username,直接在表达式后面加属性访问即可:from_json(SecretString).username,执行后会返回:"db-admin"

  • 复杂操作也支持
    比如要同时提取用户名和密码,用JMESPath的投影语法:from_json(SecretString).[username, password],会返回:["db-admin", "MyStrongPass123"]

注意事项

  • 确保你的JMESPath解析器版本在1.0以上,比如AWS CLI v2默认支持,v1可能需要升级;
  • 被解析的字符串必须是合法的JSON格式,不然from_json()会返回错误。

内容的提问来源于stack exchange,提问作者mixja

火山引擎 最新活动