Helm中解码JSON数组对象失败,报错无法将数组反序列化为map类型
问题分析与解决
错误原因很明确:你用了Helm的fromJson函数解析JSON数组字符串,但这个函数仅用于解析JSON对象(键值对map),当它遇到JSON数组时,就会抛出"无法将数组解析为map类型"的错误。
解决步骤
- 替换解析函数:把
fromJson换成专门解析JSON数组的fromJsonArray函数,这样就能正确将字符串解析为map数组。 - 循环提取value:用
range遍历解析后的数组,逐个取出每个元素的value字段。
修正后的代码示例:
{{- $params := $data.workflowParams | fromJsonArray -}} {{- range $param := $params }} # 这里可以直接使用$param.value,比如输出或赋值 {{ $param.value }} {{- end }}
如果需要验证解析结果,可以用toJson输出:
{{- $params := $data.workflowParams | fromJsonArray -}} {{- $params | toJson }}
这样就能正常得到你期望的map数组,并且顺利循环提取每个元素的value值。
内容的提问来源于stack exchange,提问作者Jazzschmidt
相关产品推荐
相关产品推荐

