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

Terraform调用jsonencode生成结果含多余反斜杠问题如何解决

问题根源

你对jsonencode的使用方式存在错误:

  • jsonencode的作用是将Terraform原生数据结构(如map、list、布尔值、字符串等)序列化为合法JSON字符串,而非对已经拼接好的类JSON字符串做格式化
  • 你将手动拼接的字符串传入jsonencode时,函数会将输入识别为普通字符串,自动对字符串内的双引号做转义处理,这就是输出中多余反斜杠的来源
  • 另外你手动拼接的字符串没有给值字段包裹双引号,本身就不符合JSON语法规范,就算不转义也无法得到合法JSON

修正方案

直接将你想要输出的JSON结构定义为Terraform的map类型,再传入jsonencode即可,修正后的配置如下:

locals {
  meta = {
    ABC = var.value1
    XYZ = var.value2
  }
}

variable "value1" {
  type    = string
  default = "google.com"
}

variable "value2" {
  type    = string
  default = "yahoo.com"
}

此时调用jsonencode(local.meta)得到的输出就是你预期的结果:

{"ABC":"google.com","XYZ":"yahoo.com"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:48:02