正在加载,请稍候…

如何格式化和验证 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. 特殊值:true、false、null(小写)

常见 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 格式化与验证工具