JSON(JavaScript Object Notation)是一种轻量级的文本数据交换格式,由 Douglas Crockford 推广,标准是 RFC 8259 和 ECMA-404。下面重点说明字符集与跨系统一致性。
JSON字符集问题
RFC 8259 要求在系统之间交换的 JSON 必须使用 UTF-8,不要加 BOM。解析器遇到 BOM 可能报“Unexpected token”。
示例
输入:{"date":"2026-11-11","list":[{"k":"a"},{"k":"b"}]}
解析与输出结果:
{
"date": "2026-11-11",
"list": [
{
"k": "a"
},
{
"k": "b"
}
]
}
说明:按 2 空格缩进,每个键值对一行。
工作原理
JSON 解析器按语法逐字符读取:遇到 { 开始对象,读取“字符串键 : 值”,用逗号分隔;遇到 [ 开始数组;字符串必须以双引号开始和结束,数字按十进制解析。整个过程只是语法转换,不执行任何代码,所以比 eval 安全。
怎么选
Web 接口、前后端通信优先选 JSON;需要人工编辑、带注释的配置文件选 YAML 或 TOML;需要严格结构校验、文档混合内容的场景(如 Office 文档、SOAP)选 XML。
JSON 与 XML:JSON 更简洁、解析更快,是 Web API 的主流;XML 支持属性、命名空间和 Schema 校验,常见于老系统和文档格式。JSON 与 YAML:YAML 可读性更好、支持注释,常用于配置文件;YAML 1.2 是 JSON 的超集。
本站的JSON格式化工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【最后一项后面能加逗号吗?】不能,这是最常见的 JSON 错误之一。
【JSON 中的大数字精度丢失怎么办?】JavaScript 只能精确表示 2^53 以内的整数,长 ID 建议用字符串传输。
【JSON 和 JavaScript 对象一样吗?】语法相似,但 JSON 更严格:必须双引号、不能有函数、undefined 和注释。
文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。