You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Helm的toJson/toRawJson且不自动添加引号?

问题:Helm中处理数据库连接字符串转义并输出到ConfigMap的JSON配置

我在values.yaml中有一个无引号的数据库连接字符串变量:

ActionLogsConnectionString: Database=ActionLogs;Server=SQL_DEV;User Id=sa;Password=Y19|yx\dySh53&h

目标是将其输出到ConfigMap中,作为.NET应用的JSON配置文件,同时追加应用名称。直接引用时结果正常,但斜杠未转义;使用toRawJson可转义斜杠,但会添加额外引号导致结果异常:

"ActionLogsConnectionString": ""Database=ActionLogs;Server=SQL_DEV;User Id=sa;Password=Y19|yx\\dySh53&h";Application Name=Asp;"

请问如何使用toRawJson且不添加额外引号?

解决方法

核心是先完成字符串拼接,再用toRawJson处理整个结果,避免手动嵌套引号。

在Helm模板中按以下方式编写:

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  appsettings.json: |-
    {
      "ActionLogsConnectionString": {{ printf "%s;Application Name=Asp;" .Values.ActionLogsConnectionString | toRawJson }}
    }

关键说明:

  1. 拼接字符串:用printf把原始连接字符串和追加的应用名称合并成完整字符串,确保内容是我们需要的最终格式。
  2. 转义处理:将拼接后的结果直接传入toRawJson,它会自动处理字符串中的特殊字符(比如把\转义为\\),同时输出符合JSON规范的单引号包裹字符串,不会出现额外嵌套引号的问题。

最终生成的ConfigMap中JSON配置会是正确格式:

{
  "ActionLogsConnectionString": "Database=ActionLogs;Server=SQL_DEV;User Id=sa;Password=Y19|yx\\dySh53&h;Application Name=Asp;"
}

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 00:10:46