正在加载,请稍候…

如何格式化和验证 JSON:开发者指南

学习使用我们的免费在线工具格式化、验证和调试 JSON。了解常见 JSON 语法错误、编码陷阱及开发者最佳实践。

如何格式化和验证 JSON:开发者指南

什么是 JSON?

JSON(JavaScript Object Notation)是一种轻量级、人类可读的数据交换格式。源自 JavaScript 对象字面量语法,JSON 已成为 Web 上数据交换的通用标准,用于 REST API、配置文件和数据存储。

JSON 支持六种数据类型:字符串、数字、布尔值(true/false)、null、数组和对象。其简洁性和可读性使其成为 XML 的主要替代方案。

如何格式化和验证 JSON:开发者指南插图

JSON 语法规则

JSON 有严格的语法要求,与 JavaScript 不同:

  1. 键必须是字符串,用双引号括起来:"key": "value"(而不是 key: "value"
  2. 字符串仅使用双引号 - 不能使用单引号
  3. 没有尾随逗号{"a": 1, "b": 2} 有效,但 {"a": 1, "b": 2,} 无效
  4. 没有注释:JSON 不支持 ///* */ 注释
  5. 数字不能有前导零100 有效,0100 无效
  6. 特殊值truefalsenull(小写)

常见 JSON 错误

语法错误:意外标记

通常表示尾随逗号、缺少逗号或未加引号的键:

错误:  {"name": "John", "age": 30,}  <- 尾随逗号
正确: {"name": "John", "age": 30}

错误:  {name: "John"}  <- 未加引号的键
正确: {"name": "John"}

意外的控制字符

字符串内未转义的特殊字符:

错误:  {"path": "C:\Users\name"}    <- 反斜杠未转义
正确: {"path": "C:\\Users\\name"}  <- 转义反斜杠

错误:  {"text": "line 1
line 2"}                           <- 未转义换行符
正确: {"text": "line 1\nline 2"}   <- 转义换行符

如何格式化和验证 JSON:开发者指南插图

未闭合的括号或花括号

缺少闭合的 }]

错误:  [{"id": 1}, {"id": 2]  <- 缺少 }
正确: [{"id": 1}, {"id": 2}]

JSON 格式化级别

压缩 JSON(单行,无空白):

{"users":[{"id":1,"name":"Alice"},{"id":2,"name":"Bob"}]}

最佳用途:API 响应、数据传输(体积更小)。

美化打印 JSON(缩进,人类可读):

{
  "users": [
    {
      "id": 1,
      "name": "Alice"
    },
    {
      "id": 2,
      "name": "Bob"
    }
  ]
}

最佳用途:配置文件、调试、文档。

JSON 实践

在 JavaScript 中解析 JSON

// 解析(字符串转对象)
const data = JSON.parse('{"name": "Alice", "age": 30}');
console.log(data.name);  // "Alice"

// 序列化(对象转字符串)
const json = JSON.stringify({ name: "Alice", age: 30 });
// '{"name":"Alice","age":30}'

// 美化打印(2 空格缩进)
const pretty = JSON.stringify(data, null, 2);

如何格式化和验证 JSON:开发者指南插图

JSON Schema 验证

JSON Schema 定义了 JSON 数据的预期结构、类型和约束:

{
  "type": "object",
  "properties": {
    "name": { "type": "string", "minLength": 1 },
    "age": { "type": "number", "minimum": 0 }
  },
  "required": ["name"]
}

处理大型 JSON 文件

对于大型 JSON 文件(>100MB),流式解析器避免将整个文件加载到内存中:

  • Node.js:stream-json
  • Python:ijson

JSON 与其他格式对比

格式 注释 二进制 模式 用例
JSON JSON Schema Web API、配置
YAML 配置文件、DevOps
TOML 有限 应用程序配置
XML XSD 企业、文档
MessagePack 不适用 性能关键场景
Protocol Buffers 不适用 高性能 API

使用此工具

粘贴任何 JSON 文本即可立即验证并检测错误,显示具体的行号和列号。该工具可美化打印有效 JSON,支持可配置缩进(2 空格、4 空格或制表符),并高亮显示任何语法错误。

-> 尝试 JSON 格式化与验证工具