在浏览器中立即格式化、验证和浏览 JSON 数据
JSON(JavaScript 对象表示法)是现代软件的通用语言。无论您是开发人员调试 API 响应、数据分析师检查配置文件,还是非技术用户试图理解结构化数据,阅读原始 JSON 都可能是一种令人沮丧的体验。缺少一个逗号或错误放置的括号都可能导致整个应用程序崩溃,而未格式化的 JSON 几乎不可能进行视觉扫描。
理解 JSON
什么是 JSON?
JSON(JavaScript 对象表示法)是一种轻量级的、基于文本的数据交换格式,由 RFC 8259 定义。它将结构化数据表示为名称/值对(对象)和有序列表(数组)的集合。JSON 支持六种数据类型:字符串(用双引号括起来)、数字(整数或浮点数)、布尔值(真或假)、空值、对象(包含键值对的花括号)和数组(包含值的方括号)。由于 JSON 与语言无关且易于人类阅读,它已成为 REST API、配置文件、NoSQL 数据库和几乎所有编程语言和平台之间服务通信的主导格式。
格式化是如何工作的?
JSON 格式化使用浏览器内置的 JSON.parse() 函数将输入字符串反序列化为原生 JavaScript 值,然后使用所选的缩进级别通过 JSON.stringify() 重新序列化。如果 JSON.parse() 抛出 SyntaxError,格式化工具会捕获它,从错误消息中提取字符位置,将该位置映射回原始输入中的行和列号,并显示可读的错误。压缩的工作方式相同,但不向 JSON.stringify() 传递任何缩进参数,从而生成尽可能紧凑的表示。自动修复在解析之前应用一系列文本转换,以纠正常见问题,如尾随逗号、单引号和未加引号的键。
为什么 JSON 格式化很重要?
未格式化或压缩的 JSON 对人类几乎不可读。一个跨越数千个字符的单行负载几乎不可能发现缺失字段、错误值或结构错误。适当的缩进立即揭示数据的层次结构——您可以一目了然地看到哪些键属于哪个对象、数组嵌套的深度以及结构的开始和结束位置。对于调试 API 响应、审查配置文件或与同事沟通数据结构,格式良好的 JSON 显著降低了认知负担。验证同样重要:JSON 配置文件中的单个语法错误可能会在启动时崩溃应用程序,而在部署前捕获该错误可以节省时间并防止事故。
限制和注意事项
格式化工具在 RFC 8259 标准定义的有效 JSON 上运行。JSON 不支持注释、尾随逗号或单引号字符串——这些特性在 JavaScript 对象字面量和 JSONC 或 JSON5 等配置格式中很常见。自动修复功能处理许多这些情况,但这是一个启发式过程,可能无法正确处理每个边缘情况,特别是在深度损坏的输入中。非常大的 JSON 文件(几兆字节)可能会导致临时的用户界面延迟,因为处理发生在主浏览器线程上。CSV 导出仅适用于平面对象的数组;数组项中的嵌套对象被序列化为 JSON 字符串,而不是展平为列。所有处理完全在客户端进行——没有数据被传输到任何地方。
如何使用此格式化工具
粘贴或上传您的 JSON
从 API 响应、配置文件或任何来源复制您的 JSON 字符串,并将其粘贴到输入文本区域。或者,单击“上传文件”直接从计算机导入 .json 文件。格式化工具会在您输入时自动开始处理。
选择格式化选项
选择您喜欢的缩进方式(紧凑输出使用2个空格,额外可读性使用4个空格,传统格式使用制表符)。如果您希望所有对象键按字母顺序排序,请启用“排序键” — 在比较两个JSON对象或生成确定性输出时非常有用。
审查结果
绿色徽章确认JSON有效。如果有语法错误,红色徽章将显示确切的行和列号以及简单的错误描述。使用“自动修复”按钮自动修复常见问题,如尾随逗号、单引号和未加引号的键,然后再格式化。
复制、下载或探索
在格式化视图(语法高亮代码)、树视图(交互式可折叠层次结构)和CSV选项卡(用于对象数组)之间切换。将输出复制到剪贴板或将其下载为.json或.csv文件。检查大小比较条以查看缩小如何减少您的负载。
常见问题
我的JSON数据在这里粘贴安全吗?
是的,完全安全。JSON格式化器完全在您的浏览器中运行,使用客户端JavaScript。您的数据从未发送到任何服务器,从未存储,也从未记录。一切都在您的设备上本地进行 — 即使您在加载页面后断开互联网,格式化器仍然继续工作。这使得与API令牌、数据库负载、内部配置文件或任何您不想通过网络传输的敏感数据一起使用是安全的。
自动修复按钮有什么作用?
自动修复在解析之前对格式不正确的JSON应用一系列启发式修复。它处理最常见的现实世界问题:删除尾随逗号(来自JavaScript对象字面量)、将单引号转换为双引号、为未加引号的对象键添加缺失的引号、将Python风格的None/True/False替换为JSON的null/true/false、去除JavaScript风格的注释(//和/* */)、规范化从文字处理器粘贴的花括号或“智能”引号字符、移除JSONP函数包装器,以及将换行分隔的JSON(NDJSON)转换为有效的JSON数组。自动修复是一个尽力而为的工具 — 它在常见情况下效果良好,但无法修复严重损坏的数据。
格式化和缩小有什么区别?
格式化(也称为美化或漂亮打印)添加缩进和换行,使JSON易于阅读。它非常适合开发、调试和文档。缩小则相反:它删除所有不必要的空白 — 空格、制表符和换行 — 生成相同数据的最紧凑表示。缩小的JSON在网络上传输更快,使用更少的带宽,使其成为生产中API响应的首选格式。这两种表示包含完全相同的数据;只有格式不同。我们的大小比较条以数字方式向您展示缩小输出的大小。
树视图如何工作?
树视图将您的JSON呈现为交互式可折叠层次结构。每个对象和数组都有一个切换箭头,可以展开或折叠其子项。单击任何节点可以切换其打开或关闭。默认情况下,前两级是展开的,因此您可以立即看到顶级结构,而不会被深层嵌套的数据所淹没。展开全部和折叠全部按钮一次性切换整个树。将鼠标悬停在任何节点上会显示一个小复制图标,允许您将该节点的值作为格式化的JSON复制 — 当您需要从大型响应中获取特定嵌套对象时非常方便。
CSV选项卡何时出现?
当您的JSON是有效的对象数组时,CSV选项卡会自动出现 — 这是几乎所有列出资源(用户、产品、订单等)的REST API返回的模式。转换器提取所有对象中的唯一键作为列标题,然后将每个对象的值映射到相应的列。数组项中的嵌套对象被序列化为JSON字符串,而不是展平为子列。生成的CSV可以直接下载并在Excel、Google Sheets或任何电子表格应用程序中打开。如果您的JSON是单个对象或包含非对象数组元素,则CSV选项卡会被隐藏。
我应该选择什么缩进?
选择取决于您的用例和团队惯例。在JavaScript、TypeScript和JSON配置文件中,两个空格是最受欢迎的选择 — 它保持文件紧凑,同时仍然可读。四个空格在Python项目和某些Java环境中很常见。某些团队更喜欢使用制表符,因为它们允许每个开发人员配置其编辑器以在任何视觉宽度下显示它们。当不确定时,请检查您项目的.editorconfig或代码检查配置。对于在文档或消息中共享JSON,其中视觉对齐比文件大小更重要,4个空格通常是最清晰的。对于生产API响应,请始终使用缩小而不是任何缩进。