JSON 是什么?基本语法与在线解析、格式化、验证的实用指南
JSON 是一种用纯文本表示结构化数据的格式,全称 JavaScript Object Notation。它最常见的用途是在前后端之间传递数据,也常用于配置文件。判断要不要用它,看两点:数据是结构化的(有字段名和层级),且需要在不同程序或语言之间交换。如果只是给人看的文档,用普通文本更合适。
JSON 的基本结构
JSON 的值只能是六种类型之一:
| 类型 | 写法示例 | 说明 |
|---|---|---|
| 对象 | {"name": "Tom", "age": 18} |
用花括号包裹,内部是键值对 |
| 数组 | [1, 2, 3] |
用方括号包裹,元素有序 |
| 字符串 | "hello" |
必须用双引号 |
| 数字 | 18、3.14 |
不加引号,不支持 NaN、Infinity |
| 布尔值 | true、false |
全小写 |
| null | null |
表示空值 |
对象和数组可以互相嵌套,这是 JSON 能表达复杂结构的原因。例如一个用户列表:
{
"users": [
{ "name": "Tom", "age": 18, "vip": false },
{ "name": "Jerry", "age": 20, "vip": true }
],
"total": 2
}
语法规则与常见错误
JSON 的规则不多,但错一个字符整段就无法解析。最容易踩的坑:
- 键名必须用双引号。
{name: "Tom"}是错的,{"name": "Tom"}才对。单引号同样不行。 - 不能有注释。
//和/* */都不是合法 JSON,需要注释时只能另加字段,比如"_comment": "..."。 - 最后一个元素后不能有逗号。
[1, 2, 3,]会报错。 - 字符串里的特殊字符要转义。换行写
\n,双引号写\",反斜杠写\\。 - 数字不能有前导零,
01不合法,写1。
验证时工具通常会指出出错的行号和列号,按提示定位即可。
在线解析与格式化
从接口拿到的 JSON 往往是一整行压缩文本,人眼无法阅读。格式化的作用就是按层级缩进,把它展开成可读结构。
操作流程一般是:把原始 JSON 粘贴进输入框 → 点击格式化 → 工具输出带缩进的版本。反向操作叫压缩,去掉所有多余空白,减小体积,适合放进请求体或存储。
JSON.cn 提供 JSON 在线解析、格式化、压缩、编辑以及 JSON 与 XML 相互转换等服务。使用这类在线工具时,注意两点:
- 数据隐私:粘贴的内容会经过对方服务器,涉及密钥、用户信息、内部配置的数据不要贴到公开工具上,本地编辑器或命令行工具更稳妥。
- 大文件:超大 JSON 在浏览器里可能卡顿甚至崩溃,超过几 MB 建议用本地工具处理。
格式验证与错误定位
验证是格式化之外最常用的功能。当 JSON 解析失败时,工具会给出错误位置,常见提示和对应原因:
Unexpected token—— 多半是引号、逗号或括号用错。Unexpected end of input—— 括号没闭合,或内容被截断。Expected property name—— 键名没加双引号。
修复顺序建议:先看括号是否成对,再检查逗号和引号,最后处理转义字符。改完重新验证,直到通过。
转换、压缩与转义
除了格式化,日常还会遇到几类处理:
- JSON 转 XML / XML 转 JSON:在两种数据格式之间迁移时使用,字段结构会做对应映射,转换后建议人工核对嵌套层级。
- 压缩:去掉空白,用于传输。
- 转义:把 JSON 字符串整体转成可嵌入另一种文本的形式,比如放进代码字符串里。
- JSON 转实体:把 JSON 结构映射成编程语言里的对象或实体类,减少手写代码。
怎么选在线工具
选之前先明确用途:
- 只是临时看一眼、格式化一段不含敏感信息的 JSON,在线工具最快。
- 数据敏感或文件很大,用本地编辑器、IDE 插件或命令行工具。
- 需要频繁转换格式,优先选支持多种转换且能保留结构的工具。
JSON.cn 这类中文站点适合快速解析、验证和格式转换,具体功能以网站实际提供的为准。