如何使用JMESPath将JSON结构转换为键值对拼接字符串格式?
使用JMESPath将嵌套JSON转换为键值对字符串的原生方案
可以通过JMESPath原生表达式直接实现,无需分开提取键和值再通过脚本合并。
原始JSON结构(对应你表达式中的[0].variables场景)
{ "variables": [ { "key1": { "isSecret": null, "value": "value1" }, "key2": { "isSecret": null, "value": "value2" }, "key3": { "isSecret": null, "value": "value3" } } ] }
目标输出
key1=value1 key2=value2 key3=value3
JMESPath原生表达式
join(' ', map(&join('=', [@[0], @[1].value]), entries([0].variables)))
表达式解析
entries([0].variables):将目标对象转换为键值对数组,每个元素格式为["键名", {"isSecret": null, "value": "对应值"}]map(&join('=', [@[0], @[1].value]), ...):遍历每个键值对,把键名和对应对象的value字段用=拼接成单个字符串,例如"key1=value1"join(' ', ...):将所有拼接好的字符串用空格连接,得到最终的目标格式
如果你的原始JSON是顶层直接包含key1/key2/key3的结构(即不需要[0].variables层级),则表达式简化为:
join(' ', map(&join('=', [@[0], @[1].value]), entries(@)))
内容的提问来源于stack exchange,提问作者user3124206
相关产品推荐
相关产品推荐

