JSON 语法严格,很多在 JavaScript 里「顺手」的写法,放进 JSON 就会报错。下面是最常见的 5 类错误,附错误与正确写法对照,看完能避开 90% 的坑。
数组或对象的最后一个元素后面多写了一个逗号,这是最高频的错误:
{ "name": "Tom", "age": 18, } // ❌ 对象尾逗号
[1, 2, 3,] // ❌ 数组尾逗号
{ "name": "Tom", "age": 18 } // ✅ 正确
[1, 2, 3] // ✅ 正确
JavaScript 允许尾逗号,所以从 JS 里复制数据到 JSON 时特别容易中招。
JSON 的字符串和键只能用双引号,单引号一律非法:
{ 'name': 'Tom' } // ❌ 单引号
{ "name": "Tom" } // ✅ 双引号
JSON 标准不支持任何注释,// 和 /* */ 都会报错:
{
"name": "Tom" // 用户姓名 // ❌ 注释
}
想给 JSON 加说明,只能把说明放进字段值,或改用支持注释的 JSON5 格式。
对象的键必须是双引号包裹的字符串:
{ name: "Tom" } // ❌ 键没加引号
{ "name": "Tom" } // ✅ 正确
JSON 只认 6 种类型,这些 JavaScript 里的值放进 JSON 都会出问题:
{ "n": NaN } // ❌ NaN
{ "u": undefined } // ❌ undefined
{ "fn": function(){} } // ❌ 函数
{ "d": new Date() } // ❌ Date 对象
遇到这些值,需要先手动转成 JSON 支持的表示(如把 NaN 转成 null,Date 转成字符串)。
与其逐条肉眼排查,不如用 JSON 在线校验工具 一键检查——粘贴后它会立即解析,自动定位到错误所在的行和列,并告诉你具体原因,几秒就能定位问题。