JSON 格式化与校验
格式化、压缩和校验 JSON,精确给出语法错误所在的行和列,大数字按原样保留。
- 顶层类型
- 键数
- 最大深度
- 大小
把工具固定在这里,会保存在此浏览器中。
固定一个工具,它的贴纸就会出现在这里。
格式化、压缩和校验 JSON,精确给出语法错误所在的行和列,大数字按原样保留。
JSON 由 RFC 8259 和 ECMA-404 定义。一个文档就是一个值:对象、数组、字符串、数字、true、false 或 null。字符串和对象的键都用双引号括起来,并且没有注释语法。
很多出错的文档里都有 JavaScript 对象字面量允许、而 JSON 不允许的写法:最后一项后面的逗号、单引号、没有引号的键,或者注释。打开修复常见错误后,此工具能读取这些写法,以及字符串中的原始换行符和制表符、单引号前的反斜杠、Python 的 True、False 和 None,告诉你改了哪些地方,并输出严格的 JSON。
各个浏览器对 JSON.parse 错误的表述各不相同,有些还不指出错误的位置。此工具用自己的解析器读取文本,所以在任何浏览器中,错误信息、行号和列号都是一样的。跳到错误处会在输入中选中出错的字符;粘贴整个文档时,工具会自动这样做。
报告的位置是解析器无法继续的地方,可能比真正出错的地方稍晚一些。例如缺少逗号时,报告的是下一项的第一个字符。
JSON 语法对数字的大小没有限制,但 JavaScript 中的 JSON.parse 会把每个数字都转成 64 位浮点数,而它只能精确表示不超过 2 的 53 次方(9,007,199,254,740,992)的整数。像 12345678901234567890 这样更大的标识符,经过 JSON.parse 后会变成 12345678901234567000。此格式化工具照抄每个数字的文本,而不做转换,因此长整数、1.0 和 1e5 输出时与输入完全一致;如果某个整数经过 JavaScript 解析器后无法保持原值,工具会发出警告。
RFC 8259 规定对象的键应当唯一,并指出软件收到重复键时的行为不可预测。很多解析器会不加提示地只保留最后一个值。此格式化工具会保留每一个条目,并告诉你第一个重复键的位置。
按键名排序会对每一层、每个对象的键排序,排序依据是 UTF-16 码元,也就是 JavaScript 默认排序的顺序:先数字,再大写字母,最后小写字母。数组保持原有顺序。大小按 UTF-8 字节数计算。
不会。文本由浏览器标签页中的 JavaScript 解析和格式化,此工具不会用你粘贴的内容发出任何网络请求。
RFC 8259 的语法中没有注释,并且要求每个逗号后面都有一个值,因此标准解析器会拒绝这两种写法。允许它们的 JSON5 是另一种格式。打开修复选项,就能读取这类文件并得到严格的 JSON。
格式化会把每一项放在单独的一行并加上缩进,让结构更易读。压缩会删除各项之间的空白,让文档在存储和传输时更小。两种形式中的数据完全相同。
对于遵循规范的程序来说不会,因为规范把对象描述为名称/值对的无序集合。排序便于逐行比较两个文档。数组是有序的,所以其中的项永远不会被移动。
它会在独立窗口中打开,离线时也能使用。
要安装,请点按“分享”按钮,然后选择“添加到主屏幕”。