{} JSON格式化
美化 / 压缩 / 校验
美化 / 压缩 / 校验
JSON格式化是将压缩的JSON字符串按缩进层级显示,使其更易读。如{"a":1,"b":2}格式化为多行带缩进。压缩则是去除空格换行减小体积。
粘贴JSON文本到输入框,工具自动校验语法。如有错误会显示错误位置和原因,如"第3行缺少逗号"。校验通过则显示格式化结果。
JSON是严格的文本格式:键必须用双引号、不能用单引号或裸key、不能有注释、不能有函数。而JS对象字面量更宽松。所以很多"看起来像JSON"的内容其实不合法。
这是JSON规范的规定。单引号、无引号key都不是合法JSON,用JSON.parse解析会直接报错。只有JS对象字面量才允许这样写。
标准JSON不能。JSON5、JSONC等扩展格式才支持注释。如果你拿到带注释的"JSON",需要用代码去掉注释或换用JSONC解析器。
只有6种:对象、数组、字符串、数字、布尔值(true/false)、null。不支持日期、函数、undefined、NaN等。日期通常用ISO字符串表示。
能,但要按UTF-8编码。JSON.parse/json.stringify都支持中文,格式化后中文原样显示,不会转成\uXXXX。
一般不卡。JSON.parse和JSON.stringify对几万层以内的嵌套都没问题,除非结构异常巨大。真要遇到超大数据,建议先压缩再做别的操作。
JSON(JavaScript Object Notation)是轻量级数据交换格式,语法很严格,下面几点最容易踩坑:
| 规则 | 合法示例 | 非法示例 |
|---|---|---|
| 键必须双引号 | {"a":1} | {a:1} / {'a':1} |
| 字符串必须双引号 | "hi" | 'hi' / hi |
| 不能有注释 | — | //注释 / /* */ |
| 不能有尾逗号 | {"a":1} | {"a":1,} |
| 布尔值小写 | true/false | True/False |
| null专门表示空 | null | undefined/NaN |
记住这些,写出的JSON基本不会错。
日期、函数、二进制这些都不在标准JSON里,需要用时选合适的表示方案。
JSON是目前Web API最主流的数据格式。后端返回JSON,前端用JSON.parse解析成对象再渲染。几乎所有的REST API、配置、数据库NoSQL文档都基于JSON。
它比XML更轻量、更易读、JS原生支持,所以统治了现在的Web开发。
80%的JSON解析失败都能靠这几点解决。
| 类型 | 示例 | 说明 |
|---|---|---|
| 对象 | {"name":"张三"} | 键值对 |
| 数组 | [1,2,3] | 有序列表 |
| 字符串 | "你好" | 必须双引号 |
| 数字 | 3.14 | 整数或浮点 |
| 布尔 | true | 小写 |
| null | null | 空值 |
1. 粘贴JSON文本。
2. 选择格式化或压缩。
3. 查看结果或错误提示。