跳到正文

← 全部工具

免费在线工具

JSON 格式化与校验

粘贴 JSON,就能格式化、压缩或检查。有错误时会告诉你第几行第几列,以及最可能的改法;很长的数字每一位都保留。不会上传任何内容,全部在本页里运行。

建议开启。关闭后数字会经过 JavaScript 转换,很长的数字会被四舍五入(12345678901234567890 会变成 12345678901234567000)。

请选择“格式化”“压缩”或“校验”。

字符串转义与还原

把文字变成可以放进 JSON 字符串的样子(引号、换行、反斜杠会变成 \" \n \\),或者反过来还原。

它是怎么工作的

  • •本页用自带的严格解析器读取 JSON,规则遵循 JSON 标准(RFC 8259)。它比 JavaScript 更严格:不允许末尾逗号、注释、单引号,也没有 NaN 和 undefined。
  • •出错时它报告的是文本开始读不通的位置,这往往是真正错误之后的那个字符,所以请同时看标记处和它前面的一项。列号按字符数计算,行按换行符(\n)划分。
  • •默认情况下,格式化不会把数字交给 JavaScript 处理。像 12345678901234567890 这样的值会逐位照抄,而先 JSON.parse 再 JSON.stringify 会把它变成 12345678901234567000。JavaScript 无法精确保存的数字会被列出来,方便你决定哪些要改用字符串传递。
  • •如果同一个对象里出现了两次相同的键,两个都会保留并给出提醒,因为多数程序只会悄悄保留最后一个。
  • •上限是 5 MB 文本和 500 层嵌套。按键名排序是按字符编码比较,所以大写字母排在小写字母前面。

常见问题

会上传我的 JSON 吗?
不会。文本只由本页里运行的代码处理,不会发送到任何地方。复制和下载也都在你的设备上完成。
为什么别的格式化工具改了我的大数字?
多数工具把数字当作 JavaScript 的双精度浮点数读取,只有到 9,007,199,254,740,991(2^53 - 1)以内才精确,更长的会被四舍五入。本页会保留原来的每一位并提醒你;但用 JavaScript 读取这份 JSON 的程序依然会四舍五入,所以这么长的 ID 请用字符串传递。
为什么在 JavaScript 里能用的写法,这里却报错?
JavaScript 的对象字面量允许末尾逗号、注释、单引号和不加引号的键,而 JSON 一个都不允许。错误下面的提示会告诉你最像是哪一种。
校验通过就说明数据正确吗?
不是。它只说明文本符合 JSON 语法,并不检查有没有该有的键、值的类型对不对。那需要用 JSON Schema 之类的校验工具。

相关阅读