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

JSON第5行解析报错:预期STRING却得到undefined,引号正常如何排查

这个错误的本质是模板渲染完成后的最终JSON文本中,additional_tags数组内出现了未被双引号包裹的undefined字面量,JSON语法不支持直接识别该值,因此抛出解析错误。

常见触发原因

  • 你遍历的ticket.ccs本身为undefined,部分模板引擎遇到遍历对象为空/undefined时,会直接输出undefined文本,最终生成"additional_tags": [undefined]的非法结构
  • 遍历过程中某条cc对象不存在email属性,你所用的模板引擎没有将undefined值自动转换为空字符串,反而直接输出undefined字面量,导致JSON结构异常

解决方法

  1. 优先打印模板渲染完成后的完整JSON文本,确认第5行的实际输出内容,可快速定位具体是哪个变量没有正常渲染
  2. 临时修复可以给变量加兜底逻辑,确保永远遍历合法数组、值永远为字符串,修改后的代码如下:
{
    "tickets": [
        { 
            "id": "{{ticket.id || ''}}",
            "additional_tags": [{% for cc in (ticket.ccs || []) %}"{{ cc.email || '' }}"{% if forloop.last == false %},{% endif %}{% endfor %}]
        }
    ]
}
  1. 更推荐的方案是放弃手动拼接JSON数组的写法,直接使用内置的JSON序列化能力生成对应结构,不需要手动处理逗号分隔逻辑,完全避免语法问题(不同模板引擎语法可按需调整):
{
    "tickets": [
        { 
            "id": "{{ticket.id || ''}}",
            "additional_tags": {{ JSON.stringify(Array.isArray(ticket.ccs) ? ticket.ccs.map(cc => cc.email || '') : []) }}
        }
    ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:36:00