格式化 | 验证 | 压缩

> 格式化 | 验证 | 压缩 <

// 即时格式化、验证和压缩JSON数据

[FORMAT]

美化输出

使用可自定义的缩进美化JSON。选择2空格、4空格或制表符。

[MINIFY]

压缩输出

删除所有空白来压缩JSON。减少生产环境和API的文件大小。

[VALIDATE]

语法检查

即时验证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,请先删除注释和尾随逗号。

// 其他语言