格式化 | 验证 | 压缩

> 格式化 | 验证 | 压缩 <

// 即时格式化、验证和压缩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

>> 更多问题

问:美化会改变我的数据吗?

答:不会,只改变空白和缩进。除非你明确开启键排序,否则键的顺序和值都保持不变。

问:大数字会丢失精度吗?

答:JavaScript 将数字按 64 位浮点数读取,因此超过 9,007,199,254,740,991(2^53−1)的整数可能丢失精度。如果你的 ID 这么大,建议在数据中以字符串形式保存。

问:JSON 和 JavaScript 对象有什么区别?

答:JSON 是严格的文本格式:键和字符串必须使用双引号,不能包含函数、undefined、注释或尾随逗号。JavaScript 对象字面量则宽松得多。

// 其他语言