常见问题

关于 JSON 格式化、修复、校验和数据安全的常见问题。

常见问题

可以在线格式化无效的 JSON 吗?
可以。把破损的 JSON 粘贴进来,点击 Repair & Format。工具会先尝试修复单引号、尾随逗号、JSON 键缺少引号、注释和 Python 风格的值,然后再格式化输出。
怎么格式化破损的 JSON?
从能安全粘贴的最小片段开始:先修复语法,再用严格的 JSON 解析器校验结果。如果数据里有尾随逗号,工具会先把最后那个逗号去掉,再把合法结果格式化输出。
「Unexpected token」是什么意思?
意思是解析器在当前位置遇到了严格 JSON 语法里不该出现的字符。常见的元凶是单引号、斜杠、尾随逗号、或大写的 True —— 这些通常说明文本是从 JavaScript、Python 或 AI 回复里拷来的「近似 JSON」。
可以把 JSON 转成 JavaScript 对象吗?
可以。一旦输入是合法 JSON,在 JavaScript 里调用 JSON.parse(jsonText) 即可。如果文本本身是 JavaScript 对象字面量,先把它修复成严格 JSON 再解析。
我的数据安全吗?
安全。工具完全在你的浏览器中用 JavaScript 运行,不会把数据上传到任何服务器。
Repair 和 Validate 有什么区别?
Repair 容忍常见错误,尽量产出合法 JSON;Validate 用严格解析器,报告错误的精确行列。

完整使用指南

多数 JSON 格式化工具一遇到解析错误就停下来。这个工具是为「格式化之前的一步」设计的:它把近似 JSON 转成严格 JSON,然后再美化输出,让你能审视结构。所以它适合「怎么格式化破损 JSON」这类问题,而不只是「怎么美化合法 JSON」。

从能安全粘贴的最小破损 JSON 开始。文本来自 JavaScript 对象字面量、Python 片段、Markdown 回复、手改过的配置或类 JSON 日志时,点击 Repair & Format。修复阶段会把常见语法错误归一化成合法 JSON,再以可预测的缩进打印,方便审阅嵌套数组和对象。

修复完成后再点 Validate。校验走严格解析,应该是把输出复制到 API 客户端、应用配置、数据库迁移、测试样例或命令行示例之前的最后一关。校验失败时看清行列、检查高亮的字符,并对比原文和修复后的版本。修复负责语法层面的清理,而不负责判断值在业务语义上是否正确。

JSON 合法之后再用 Minify。压缩后的 JSON 适合放进环境变量、查询参数、紧凑日志和文档里的小示例;做代码审查、调试或 API 测试时,格式化输出通常更安全,因为每个键、数组项和嵌套值都在可预测的行上。

JSON 错误词典

尾随逗号
}] 之前的最后一个逗号被很多 JavaScript 工具接受,但 JSON 解析器会拒绝。去掉最后一个属性或数组项后的多余逗号即可。
JSON 键缺少引号
nameactive 这样的键必须用双引号包起来。把 { name: "Ada" } 改成 { "name": "Ada" }
单引号
JSON 字符串只能用双引号。把 'Ada' 改成 "Ada",同时小心字符串内部的撇号。
Unexpected token
解析器在严格 JSON 语法不允许的位置遇到了一个字符。可能是逗号、斜杠、单引号、大写的布尔值,或文档结尾后的多余文本。
Python 字面量
Python 用 TrueFalseNone;JSON 用 truefalsenull
注释
注释在 JavaScript 和 JSONC 里很常见,但不属于合法 JSON。在把数据交给 JSON 解析器之前,去掉 // 行注释和 /* 块注释 */
Markdown 代码围栏
LLM 回复经常把 JSON 包在 ```json 围栏里。在解析或发往 API 之前,先把围栏标记去掉。

各工具相关问题

JSON Fix —— 怎么修复无效的 JSON?
把破损的 JSON 粘贴到 JSON Fix,点击 Repair & Format。它会一次性修复尾随逗号、单引号、未加引号的键、Python 字面量、注释和 Markdown 代码围栏。
JSON Validate —— 校验和解析 JSON 有什么区别?
解析是把 JSON 变成可用的值;校验只是确认它能被解析。成功的 JSON.parse 本身就是一次校验 —— 详见 JSON Validator
JSON Viewer —— 为什么树视图是空的?
树视图只能从可解析的 JSON 构建。先用 JSON Fix 修复常见错误,再把清理过的结果加载到 JSON Viewer
JSON Diff —— 为什么排序前后报为完全相同?
JSON 对象在规范上是无序的。JSON Diff 在比较前会先归一化键名,所以只显示真正的值差异。
JSON to TypeScript —— 生成的类型会在运行时校验吗?
不会。JSON to TypeScript 生成的是编译期接口。运行时校验请配合 Zod,或用 JSON Schema 来描述结构。
JSON Minify —— 压缩能省多少?
在 HTTP 压缩之前通常能省 15–50%。如果你的服务器已经发送 Content-Encoding: gzipbr,再用 minify 的边际收益就很小了。
JSON Stringify —— 怎么解码被两次序列化的 JSON 字符串?
JSON Stringify 里点击 Unstringify;如果输入以转义引号开头,也可以连续调两次 JSON.parse
JSON ⇄ CSV —— 嵌套对象怎么表示?
每个嵌套的对象或数组都会以 JSON 文本写入单元格,保持转换可逆。详见 JSON to CSV
JSON ⇄ XML —— 怎么把一个值变成 XML 属性?
在键名前加 @(例如 @id);元素文本放在 #text;数组会变成重复元素。详见 JSON to XML
YAML —— 为什么我的 YAML 解析不过?
几乎总是缩进问题 —— 一个 tab 字符(YAML 禁止 tab)或同级缩进对不齐。用 YAML 格式化器 跑一遍,会暴露并规范化这两个问题。
Base64 —— Base64 和 Base64url 有什么区别?
标准 Base64 用 +/,并以 = 作填充;URL 安全的 Base64url 把它们替换成 -_,并去掉填充,这样值在 URL 和 JWT 里也安全。详见 Base64
URL Decode —— 为什么 + 没被解码成空格?
在查询字符串里,空格可能写成 +(表单编码)或 %20decodeURIComponent 不会把 + 转成空格 —— 如果是表单编码数据,先自己替换一下。详见 URL Decode
JWT Decode —— 会校验签名吗?
不会。JWT Decode 只读取 claim,不检查签名。一定要在服务端校验,并把库配置成你预期的算法(绝不接受 alg: none)。

我应该看哪篇错误文章?

如果你手上有完整的错误信息,可以直接跳到对应文章:

本地处理如何保护隐私

修复、校验、格式化、压缩和复制操作都在你的浏览器标签页里运行。工具不需要上传端点来处理你的 JSON。这对包含私有标识符的 API 样本、Webhook 负载、内部配置片段或调试输出尤其重要。粘贴到任何网站之前你仍然应该去掉机密,但本工具的核心 JSON 工作流是「本地优先」设计的。

本站可能会在页面周围使用托管日志、统计分析等脚本,具体见隐私政策。这些系统不应收到你粘贴到编辑器里用于修复的内容。如果数据包含凭据、访问令牌、客户记录或生产环境机密,请在调试前用安全占位符替换。

JSON 是什么、为什么这么严格

JSON 代表 JavaScript Object Notation,但现代 JSON 已与语言无关。Python、Go、Java、PHP、Ruby、Rust、数据库、消息队列、日志系统和浏览器代码都能读同一份 JSON 文档,因为它的语法被刻意做得很小。这种严格性是有用的:JSON 解析器不会执行函数、构造器、日期、注释或表达式 —— 它只接受数据。

代价是:从 JavaScript 对象字面量、Python 字典、TypeScript 配置或 Markdown 答复里拷出来的文本看起来很像 JSON,却仍然非法。修复功能帮你把这些「近似 JSON」转成严格解析器能接受的数据。

使用修复后的 JSON 之前

修复成功只代表文本能被转成合法的 JSON 语法,并不代表数据对你的接口或应用是正确的。在把修复后的 JSON 投入生产之前,检查必填字段、未知键、值类型、数组长度、日期格式、枚举值、null 处理,以及标识符应当是字符串还是数字。

如果数据控制权限、计费、数据删除或面向客户的行为,修复后请与已知良好样本或 schema 对比。做 API 工作时,先校验语法,再校验业务契约。