JSON 格式化与验证:如何在线美化和校验 JSON

工具 次阅读

为什么需要 JSON 格式化?

JSON 数据在网络传输时通常是压缩形式(去掉所有空格和换行),以减小体积,例如:

{"name":"张三","age":30,"city":"北京","hobbies":["编程","阅读"]}

格式化(美化)后变为:

{
  "name": "张三",
  "age": 30,
  "city": "北京",
  "hobbies": [
    "编程",
    "阅读"
  ]
}

格式化后的 JSON 层级清晰,大大提高调试效率。

如何在线格式化 JSON

使用 tool.tl JSON 格式化工具

  1. 打开 tool.tl/json-formatter
  2. 将 JSON 字符串粘贴到输入框
  3. 点击「格式化」,结果立即显示,带语法高亮和层级缩进
  4. 点击「压缩」可将格式化后的 JSON 还原为单行
  5. 点击「复制」即可使用

JSON 常见语法错误及排查

JSON 语法非常严格,任何一个错误都会导致解析失败。以下是最常见的错误:

1. 使用了单引号

// ❌ 错误:JSON 只允许双引号
{'name': '张三'}

// ✅ 正确
{"name": "张三"}

2. 末尾多了逗号(Trailing Comma)

// ❌ 错误:最后一个元素后不能有逗号
{
  "name": "张三",
  "age": 30,
}

// ✅ 正确
{
  "name": "张三",
  "age": 30
}

3. 注释

// ❌ 错误:JSON 不支持注释
{
  // 用户名
  "name": "张三"
}

// ✅ 如需注释,用约定的字段名代替
{
  "_comment": "用户信息",
  "name": "张三"
}

4. 未转义的特殊字符

// ❌ 错误:字符串中的双引号和反斜杠必须转义
{"path": "C:\Users\张三"}

// ✅ 正确
{"path": "C:\\Users\\张三"}

JSON 数据类型速查

类型示例注意
字符串"hello"必须用双引号
数字42 / 3.14不加引号
布尔值true / false全小写
nullnull全小写
数组[1, 2, 3]方括号
对象{"key": "value"}花括号,键必须用双引号

JSON vs 其他数据格式

格式优点适用场景
JSON轻量、人类可读、浏览器原生支持API、配置文件、Web 数据交换
XML支持属性、命名空间,历史悠久企业系统、SOAP API
YAML可写注释、更简洁配置文件(Docker、K8s)
CSV表格数据简单高效数据导出、Excel 交换

常见问题(FAQ)

Q:JSON 的键名必须是字符串吗?

A:是的,JSON 规范要求所有键名必须是双引号括起来的字符串。JavaScript 对象允许不加引号的键,但这不是合法 JSON。

Q:JSON 支持注释吗?

A:标准 JSON 不支持注释。如果需要带注释的配置文件,可以使用 JSONC(JSON with Comments,VS Code 支持)或 JSON5 格式。

Q:如何在 JavaScript 中解析 JSON?

A:使用 JSON.parse(jsonString) 将 JSON 字符串解析为 JavaScript 对象;使用 JSON.stringify(object, null, 2) 将对象序列化为格式化 JSON(第三个参数 2 表示缩进空格数)。