JSON格式化常见问题有哪些?一文看懂报错原因与解决方法

2026-04-15 17:51 网络技术

在前后端开发、接口调试、数据传输和配置文件处理中,JSON 是最常见的数据交换格式之一。它结构清晰、语法简洁、跨语言兼容性强,因此被广泛应用于 Web 开发、API 接口、配置管理和自动化系统中。

但也正因为 JSON 语法非常严格,哪怕只是一个引号、一个逗号或一个括号写错,都可能导致整个 JSON 无法解析。很多开发者在实际使用中,经常会遇到“格式化失败”“解析报错”“反序列化异常”“乱码”等问题。

那么,**JSON 格式化常见问题到底有哪些?又该如何快速排查和修复?**本文就来系统讲清楚。

什么是 JSON 格式化?

JSON 格式化,通常指的是将原本紧凑或杂乱的 JSON 数据,按照规范进行缩进、换行和结构整理,使其更容易阅读、编辑和检查。

例如,下面是一段未格式化的 JSON:

{"name":"Alice","age":30,"isActive":true}

格式化后会变成:

{
  "name": "Alice",
  "age": 30,
  "isActive": true
}

格式化本身不会改变数据含义,但可以帮助我们更直观地发现语法问题和结构错误。

JSON 格式化为什么经常出错?

JSON 看起来简单,但它的语法要求非常严格。与 JavaScript 对象写法不同,JSON 不是“差不多就能运行”的格式,而是必须完全符合标准规范。

很多时候,工具提示“JSON invalid”“Unexpected token”“Parse error”之类的报错,本质上都是因为以下几类问题引起的。

一、最常见的语法错误

1. 键名或字符串没有使用双引号

这是最常见的问题之一。JSON 标准要求,所有键名和字符串值都必须使用双引号,不能用单引号,也不能省略引号。

错误写法:

{name: 'Alice'}

正确写法:

{"name": "Alice"}

很多人容易把 JavaScript 对象字面量的写法误当成 JSON,这是导致格式化失败的高频原因。

2. 末尾多了一个逗号

JSON 对逗号非常敏感。对象或数组中,最后一个元素后面不能加尾随逗号

错误写法:

{"a": 1, "b": 2,}

正确写法:

{"a": 1, "b": 2}

数组也是一样:

错误写法:

[1, 2, 3,]

正确写法:

[1, 2, 3]

很多编辑器会自动补全或保留逗号,这一点尤其需要注意。

3. 缺少逗号分隔符

JSON 中的对象属性和数组元素之间,必须用逗号隔开。如果漏掉逗号,解析器通常会直接报错。

错误写法:

{"name": "Alice" "age": 30}

正确写法:

{"name": "Alice", "age": 30}

这种错误在复制粘贴字段或手动拼接 JSON 时非常常见。

4. 括号没有成对出现

JSON 中只允许使用两类结构:

  • 对象:{}
  • 数组:[]

如果花括号或方括号没有正确闭合,整段 JSON 就会失效。

错误写法:

{"user": {"name": "Tom", "age": 25}

正确写法:

{"user": {"name": "Tom", "age": 25}}

嵌套层级一多,这种问题特别容易出现。

二、数据类型使用错误

1. 数字、布尔值、null 被错误加上引号

JSON 支持字符串、数字、布尔值、对象、数组和 null,但不同类型的写法必须严格区分。

错误写法:

{
  "age": "30",
  "isActive": "true",
  "value": "null"
}

正确写法:

{
  "age": 30,
  "isActive": true,
  "value": null
}

加上引号之后,这些值就不再是原来的数据类型,而是普通字符串了。在接口对接、数据库写入或程序反序列化时,常常会因此出错。

2. 使用了 JSON 不支持的值

JSON 不是 JavaScript 全量语法,它不支持以下内容:

  • undefined
  • function
  • NaN
  • Infinity

例如下面这种写法就是无效的:

{
  "score": NaN
}

或者:

{
  "callback": function() {}
}

如果需要传递这类信息,通常要转换成字符串,或者在业务逻辑中另行处理。

三、特殊字符与转义问题

1. 双引号没有转义

JSON 字符串内部如果包含双引号,必须进行转义,否则会破坏原有结构。

错误写法:

{
  "text": "他说:"你好""
}

正确写法:

{
  "text": "他说:\"你好\""
}

2. 换行、制表符等未正确处理

JSON 中一些特殊字符需要使用转义符,例如:

  • 换行:\n
  • 制表符:\t
  • 回车:\r
  • 反斜杠:\\

如果直接把这些字符原样放进 JSON 字符串,有时会引发格式错误或显示异常。

3. 路径中的反斜杠没有转义

在 Windows 路径中尤其容易遇到这个问题。

错误写法:

{
  "path": "C:\new\test"
}

正确写法:

{
  "path": "C:\\new\\test"
}

因为反斜杠在 JSON 中本身就有转义作用,所以路径中的 \ 必须写成 \\

四、编码与乱码问题

1. 文件不是 UTF-8 编码

JSON 标准要求通常使用 UTF-8 编码。如果文件编码不正确,可能会出现乱码、解析失败、接口接收异常等问题。

特别是在以下场景中要重点注意:

  • 从 Excel 或记事本导出的 JSON
  • 不同系统间复制数据
  • 接口响应头未正确声明编码
  • 后端生成 JSON 时字符集配置错误

如果发现中文乱码、特殊字符异常,首先应检查文件编码是否为 UTF-8。

2. 中文与 Unicode 转义混用导致阅读困难

JSON 支持直接写中文,也支持使用 Unicode 编码,例如:

{"name": "张三"}

也可以写成:

{"name": "\u5f20\u4e09"}

两者都合法,但如果整份 JSON 全是 Unicode 转义,虽然程序能识别,人阅读和排错会非常不方便。

五、嵌套结构复杂导致的问题

当 JSON 数据层级变深后,最常出现的问题就是结构混乱、闭合不完整、层级对应错误。

例如,一个对象中嵌套数组,数组中再嵌套对象,手动编写时很容易漏写一个 ]},导致整段内容无法格式化。

这类问题的典型表现有:

  • 格式化工具无法解析
  • 报错位置不明确
  • 视觉上看不出哪里错
  • 改了一个地方,其他地方又出问题

因此,JSON 层级较深时,不建议手动“肉眼对齐”,最好借助格式化工具自动缩进,再逐层检查括号匹配关系。

六、不同语言和框架处理不一致

虽然 JSON 是标准格式,但不同开发语言、库和框架在序列化和反序列化时,行为可能并不完全相同。

例如有些框架会自动把属性名转成驼峰命名,有些会保留原始大小写;有些会忽略 null 字段,有些则会完整输出;有些日期格式默认是时间戳,有些则输出标准日期字符串。

这就导致一个现象:同样一份 JSON,在一个环境中正常,在另一个环境中却报错或解析结果不同。

开发中常见的表现包括:

  • 属性名大小写不一致
  • 日期时间格式不匹配
  • null 值丢失
  • 枚举值输出方式不同
  • 布尔值或数字被转成字符串

因此,遇到 JSON 格式化或解析问题时,除了检查语法本身,还要检查当前语言或框架的默认配置。

七、日期时间字段格式不匹配

日期时间是 JSON 中一个非常容易出问题的字段类型。因为 JSON 本身并没有“日期”这种专属类型,日期通常会以字符串形式传输。

例如:

{
  "createTime": "2026-04-15 10:30:00"
}

问题在于,不同后端框架、注解、时区配置对日期格式要求不同。如果前后端约定不一致,就容易导致:

  • 反序列化失败
  • 日期为空
  • 时间偏差 8 小时
  • 格式化时报错

因此在接口设计时,日期字段最好统一规范,例如明确使用:

  • yyyy-MM-dd
  • yyyy-MM-dd HH:mm:ss
  • ISO 8601 格式
  • 时间戳格式

只有格式统一,才能避免大量兼容性问题。

八、在线格式化工具无法处理异常 JSON

很多人会把 JSON 粘贴到在线工具里格式化,但如果原始内容本身已经有错误,工具就无法正常处理。

常见情况包括:

  • key 没有双引号
  • 多了逗号
  • 混入注释
  • 使用了单引号
  • 包含非法值

标准 JSON 格式化工具通常只能处理“合法 JSON”,而不能自动修复“类 JSON”或“伪 JSON”。

所以如果工具提示格式化失败,不一定是工具坏了,更可能是输入内容本身已经不符合 JSON 标准。

如何快速排查 JSON 格式化错误?

当你遇到 JSON 报错时,可以按照下面的思路检查:

先看最基础的语法:

  • 键名是否用了双引号
  • 字符串是否用了双引号
  • 末尾是否多了逗号
  • 逗号有没有漏掉
  • 括号是否完整闭合

再看数据类型:

  • 数字是否误写成字符串
  • true、false、null 是否写对
  • 是否混入 undefined、NaN、函数等非法值

接着检查特殊字符:

  • 双引号是否转义
  • 路径中的反斜杠是否写成 \\
  • 换行符、制表符是否正确转义

最后检查环境和编码:

  • 文件是否为 UTF-8
  • 框架是否做了额外转换
  • 日期格式是否和后端规则一致

JSON 格式化的实用建议

为了减少 JSON 格式错误,实际开发中可以养成这几个习惯:

第一,尽量不要手动硬写复杂 JSON,优先使用编辑器、调试工具或程序生成。

第二,接口联调前先做一次 JSON 校验,尽早发现问题。

第三,保持字段命名和数据类型统一,避免前后端理解不一致。

第四,涉及路径、HTML、SQL、正则等特殊字符串时,重点检查转义。

第五,遇到报错不要只看第一行,往往真正的问题出在前面某个括号或逗号位置。

结语

JSON 看起来简单,但它其实是一种“语法容错率极低”的数据格式。一个小小的引号、一个多余的逗号、一个未闭合的括号,都可能让整个 JSON 无法解析。

因此,理解 JSON 格式化中的常见问题,不只是为了让数据变好看,更重要的是为了提高接口联调效率、减少开发错误、提升系统稳定性。

无论你是前端开发、后端工程师、测试人员,还是经常接触接口数据的运维人员,掌握 JSON 的常见报错原因和修复方法,都会非常实用。

相关推荐