Shopify JSON 模板尾逗号导致无法保存
保存失败表现#
在线商店编辑器或代码编辑器保存 JSON 模板(如 templates/product.json)时提示 invalid JSON / Unable to update template。有时只说“模板无法保存”,浏览器控制台可见 422。Section 文件本身 Liquid 正常,问题孤立在 JSON。
原因#
JSON 标准不允许数组或对象最后一个属性后的尾逗号。从 Liquid 或 JS 习惯带出的 ,} / ,] 会让解析失败。手改 templates/*.json 时删除某个 block 却留下逗号,或合并冲突残留 <<< 标记,同样致命。OS 2.0 模板顶层常见键为 sections、order、settings(以你主题实际结构与 JSON templates 为准),键名拼错不会表现为尾逗号错误,但会一并排查。
修复路径#
- 把该 JSON 粘到严格校验器(或
python -m json.tool)看报错行列。 - 删掉对象/数组末元素后的多余逗号;排除注释(标准 JSON 无注释)。
- 用主题代码编辑器的“格式化”前先备份,避免格式化被坏 JSON 中断。
- CLI:
shopify theme push --only templates/xxx.json前本地先json.tool通过。 - 若由应用写入模板,抓应用日志,确认其序列化未开“JS 风格尾逗号”。
- 修复后在编辑器打开该模板,拖动一次区块并保存,确认往返不损坏。
验收#
文件可保存;json.tool 退出码 0;前台对应模板可渲染。备份保留至确认无回归。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。