> 格式化 | 验证 | 压缩 <
// 即时格式化、验证和压缩JSON数据
美化输出
使用可自定义的缩进美化JSON。选择2空格、4空格或制表符。
压缩输出
删除所有空白来压缩JSON。减少生产环境和API的文件大小。
语法检查
即时验证JSON语法。获取详细的错误信息。
// 关于JSON格式化
什么是JSON:
JSON(JavaScript Object Notation)是RFC 8259定义的轻量级数据交换格式。人类易于读写,机器易于解析和生成。
示例:
{"name":"John","age":30} → {\n "name": "John",\n "age": 30\n}
常见用途:
- >API响应调试和检查
- >配置文件格式化
- >处理前的数据验证
- >通过压缩减小大小
- >排序键值以获得一致输出
>> 常见问题
问:什么是JSON格式化工具?
答:JSON格式化工具将原始或压缩的JSON数据用适当的缩进和换行重新格式化,使其更易读。
问:美化和压缩有什么区别?
答:美化添加缩进和换行使JSON可读。压缩删除所有不必要的空白以减小文件大小。
问:JSON验证如何工作?
答:JSON验证检查输入是否符合JSON规范(RFC 8259),包括括号、引号和数据类型。
问:排序键值有什么用?
答:按字母顺序排序重新排列JSON结构中的所有对象键,便于比较和保持一致性。
问:JSON与YAML相比如何?
答:JSON使用花括号和严格语法,YAML使用缩进。JSON在API中支持更广泛。YAML更易读但解析更复杂。
// 常见的 JSON 错误
这些写法在 JavaScript 中可行,但在严格的 JSON 中无效。
| 无效 | 有效 |
|---|---|
| {'a': 1} | {"a": 1} |
| {"a": 1,} | {"a": 1} |
| {a: 1} | {"a": 1} |
| {"a": undefined} | {"a": null} |
| {"a": 01} | {"a": 1} |
// 在代码中格式化 JSON
JavaScript JSON.stringify(obj, null, 2) Python json.dumps(obj, indent=2, ensure_ascii=False) PHP json_encode($obj, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) Go json.MarshalIndent(v, "", " ") Java new ObjectMapper().writerWithDefaultPrettyPrinter() CLI jq . file.json CLI python3 -m json.tool file.json
>> 更多问题
问:应该用 2 个空格、4 个空格还是制表符缩进?
答:这取决于团队约定,保持一致最重要。2 个空格在前端领域常见,嵌套较深时更节省宽度;4 个空格在 Python 项目中常见;制表符允许每个人自行调整显示宽度。用于传输时,无缩进的压缩 JSON 体积最小。
问:为什么我的 JSON 无效?
答:最常见的原因是用单引号代替双引号、键没有加引号、最后一项后面多了逗号、含有注释、使用了 undefined、NaN,或数字带有前导零。错误信息通常会给出第一处出错的行号和列号。
问:JSON5 和 JSONC 是什么,与 JSON 有何关系?
答:JSON5 和 JSONC 是允许注释、尾随逗号等写法的扩展格式(如 tsconfig.json、VS Code 设置)。它们不是合法的 JSON:格式化工具要求严格的 JSON,请先删除注释和尾随逗号。