JSON 实用技巧与指南

面向开发者的 JSON、YAML 与 API 数据实用文章。

5 min read

JSON 第 0 位 Unexpected Token <:你拿到的是 HTML

“Unexpected token <” 错误表示 JSON.parse 收到的是一个 HTML 页面(404、登录跳转或错误的 URL),而不是 JSON。这里讲清楚原因,附上坏的和修好的 fetch 示例。

阅读文章 →
5 min read

JSON 第 0 位 Unexpected Token u:在解析 undefined

“Unexpected token u” 错误意味着你调用了 JSON.parse(undefined)。看清楚为什么 undefined 会变成 “undefined”、如何防御,以及一个安全解析助手函数。

阅读文章 →
5 min read

JSON 中未终止的字符串:原因与修复

JSON 中未终止的字符串意思是有一个开引号却没有闭引号 —— 通常是未转义的引号、原始换行符或被截断的数据。坏例子与修复示例。

阅读文章 →
5 min read

JSON 中错误的转义字符:合法转义与修复

JSON 中错误的转义字符意味着反斜杠后面跟了 JSON 不允许的内容。看合法转义的完整列表,以及 \x、路径和 \u 的修复方法。

阅读文章 →
5 min read

JSON 数据之后出现非空白字符:修复方法

这个错误意味着一个完整的 JSON 值后面还有多余内容 —— 拼在一起的对象、被当成单块解析的 NDJSON,或末尾的垃圾。如何找出并去掉多余数据。

阅读文章 →
5 min read

JSON Pretty Print vs JSON Format:有什么区别?

对 JSON 来说,pretty print、format 和 beautify 是同一回事。讲清楚为什么、真正的区别是什么(minify、validate、tree view),以及如何在线美化 JSON。

阅读文章 →
6 min read

JSON 树形查看器:以可折叠树浏览 JSON

把 JSON 看作交互式可折叠树。展开和折叠任意对象或数组,以浏览大型嵌套负载 —— 在浏览器中完成,无需上传。

阅读文章 →
6 min read

YAML 格式化器:格式化、重新缩进与校验 YAML

YAML 格式化器会重新缩进并规范化 YAML,让它既可读又便于 diff。学习缩进规则、类型陷阱,以及何时格式化、何时转换为 JSON。

阅读文章 →
8 min read

XML 转 JSON:属性、文本节点、数组与命名空间

把 XML 正确地转成 JSON:属性、文本节点、重复元素、命名空间如何映射 —— 带约定、边角情况以及 JS / Python 代码。

阅读文章 →
7 min read

JSON 转 XML:根元素、数组与属性映射

把 JSON 转成 XML:选根元素、把 @ 前缀键映射为属性、把数组转成重复元素、做转义 —— 用 JS、Python 和在线工具。

阅读文章 →
7 min read

如何把 JSON 转成 CSV(以及反过来)

在 JavaScript、Python 和在线把 JSON 转成 CSV、CSV 转成 JSON。涵盖 array-of-objects 映射、引号规则、嵌套值与类型推断。

阅读文章 →
8 min read

如何校验 JSON:语法与 schema 校验

用 JSON.parse、Python 的 json.loads、jq 或浏览器校验 JSON 语法 —— 并学会用 JSON Schema 检查结构与类型。

阅读文章 →
8 min read

如何用 JSON.stringify 序列化 JSON

JSON.stringify 把一个值转成 JSON 字符串。学习 space 与 replacer 参数、toJSON 钩子,以及它会默默丢弃或抛错的值。

阅读文章 →
7 min read

JSON vs YAML:区别与各自适合的场景

JSON 与 YAML 对比:语法、类型、注释,以及像 Norway problem 这类坑。YAML 是 JSON 的超集 —— 何时选哪个、如何相互转换。

阅读文章 →
8 min read

如何解码 JWT 并读取其 claims

JWT 由三段 Base64url 组成。学习在 JavaScript 和 Python 里解码 header 与 payload —— 以及为什么解码一个 token 并不等于校验它。

阅读文章 →
7 min read

JSON Patch vs JSON Merge Patch:RFC 6902 vs 7396

JSON Patch (RFC 6902) 发送显式操作;JSON Merge Patch (RFC 7396) 叠加一个部分对象。看示例对比并选择合适的那一种。

阅读文章 →
7 min read

如何把 CSV 与 XML 转成 JSON

在 JavaScript、Python 和浏览器里把 CSV 与 XML 转成 JSON。涵盖 array-of-objects 映射、XML 属性处理、以及类型推断的坑。

阅读文章 →
7 min read

jq 教程:过滤与转换 JSON

jq 实用教程:安装、美化与压缩、选字段、用 select 过滤数组、用 map 转换,以及可直接复制粘贴的命令清单。

阅读文章 →
10 min read

如何从 JSON 生成 TypeScript 接口

学习如何把 JSON 转成 TypeScript 接口 —— 手写、在线工具或代码生成。涵盖嵌套对象、可选字段、数组、可空类型,以及如何让类型与 API 保持同步。

阅读文章 →
10 min read

什么是 JSON Schema?一份带示例的实用指南

JSON Schema 是一套描述 JSON 数据结构与约束的词汇。学习核心关键字、看真实示例,并在 JavaScript、Python 与浏览器中校验 JSON。

阅读文章 →
9 min read

如何压缩 JSON —— 以及什么时候应该这么做

压缩 JSON 会移除所有不必要的空白以减小体积、加快 API 响应。学习在 JavaScript、Python、命令行与浏览器中压缩 JSON —— 以及什么时候不必折腾。

阅读文章 →
8 min read

JSON 查看器 vs JSON 格式化器:有什么区别?

JSON 查看器与 JSON 格式化器看起来相似,用途却不同。学习何时用哪个工具、要看哪些特性、如何为你的工作流挑对工具。

阅读文章 →
9 min read

修复 “[object Object] is Not Valid JSON” 与其他 JSON 语法错误

遇到 “[object Object] is not valid JSON” 或 “expected a JSON object, array or literal”?学会这些错误的成因、如何修正 JSON 语法、修复尾随逗号,以及自动修复损坏的 JSON。

阅读文章 →
7 min read

在线修复 JSON:修复、校验并格式化无效 JSON

尾随逗号、单引号、未加引号的键、Python 字面量、markdown 代码围栏 —— 在线 JSON 修复工具都能处理。学习修复解析器如何工作、何时用,以及如何让敏感数据留在本地。

阅读文章 →
6 min read

JSON 格式示例:对象、数组与现实模式

可直接复制的 JSON 示例,涵盖每种数据类型、嵌套结构、REST API 响应、配置文件、日期格式与 GeoJSON —— 以及常见错误模式及其修复。

阅读文章 →
8 min read

如何格式化 JSON:美化、校验与清理 JSON 文件

在 JavaScript 里用 JSON.stringify、在 Python 里用 json.dumps、在命令行里用 jq,或在浏览器里即时格式化 JSON。包括键排序、把 YAML 与 CSV 转成 JSON,以及真实的前后对比示例。

阅读文章 →
7 min read

什么是 JSON?JSON 格式、语法与文件的完整指南

JSON(JavaScript Object Notation)是通用的数据交换格式。学习它的六种数据类型、让 JSON 严格的语法规则、.json 文件的用途,以及如何在各种语言中解析 JSON。

阅读文章 →
7 min read

为什么不要把敏感的 JSON 粘进在线工具

JWT、API 密钥、个人信息、数据库导出经常被粘到在线格式化器里。看清楚这些数据在服务端会经历什么 —— 以及为什么基于浏览器的工具更安全。

阅读文章 →
6 min read

JSON 字符串字面量中的非法控制字符:修复方法

JSON 字符串里出现原始 tab、换行、NUL 字节或 ANSI 转义序列都会触发这个错误。学习为什么 JSON 规范禁止它们、它们如何混进来,以及如何剥除或转义。

阅读文章 →
5 min read

JSON 第 1 位 Unexpected Token o:原因与修复

那个小写的 “o” 是 “[object Object]” 的第二个字符。你把一个 JavaScript 对象传给了 JSON.parse() 而不是字符串。本文列出这个错误的所有变体,以及每个的一行修复。

阅读文章 →
5 min read

Unexpected End of JSON Input:为什么会出现以及如何修复

解析器在结构完成前耗尽了输入。原因从被截断的 API 响应到未闭合括号、再到空字符串都有。五种模式,五种修复。

阅读文章 →
7 min read

Base64 不是加密:开发者常见的误解

Base64 编码看起来像乱码,但任何人一行函数就能解开。学习 Base64 到底是什么、为什么经常被误认为是加密,以及真正需要保护数据时该用什么。

阅读文章 →
9 min read

如何比较两份 JSON 文件:算法与工具

纯文本 diff 会漏掉键重排序与空白噪声。学习真正的 JSON diff 怎么工作:LCS 行 diff、语义树比较、键规范化,以及各方案的取舍。

阅读文章 →
7 min read

JSON vs JavaScript 对象:为什么不允许单引号

很多开发者把 JS 对象字面量当作 JSON。它们并不一样:单引号、未加引号的键、尾随逗号、undefined、NaN —— 这里把每处区别配示例讲清楚。

阅读文章 →
6 min read

JSON 中的尾随逗号:为什么 { "a": 1, } 会抛错

JSON 对象或数组最后一项后面一个多余的逗号就会触发 SyntaxError。学习为什么 JSON 禁止尾随逗号、它们从哪来,以及如何去掉。

阅读文章 →
6 min read

如何修复 JSON.parse 的 “Unexpected Token” 错误

“Unexpected token <” 或 “Unexpected token u in JSON at position 0” —— 这类错误会让应用直接停摆。本文讲清楚每个变体的含义,以及具体如何修。

阅读文章 →
8 min read

在 JavaScript 中如何处理损坏的 JSON

现实里的 JSON 经常是脏的:尾随逗号、单引号、Python 字面量、markdown 代码围栏。学习常见模式、如何写一个安全解析助手,以及何时该使用专门的修复库。

阅读文章 →
7 min read

JSON.parse Source Access: Lossless Numbers and Safer LLM Output

The reviver's new context.source argument plus JSON.rawJSON() lets you parse 64-bit IDs without precision loss, verify canonical form, and lock down LLM JSON output — all at native speed. A practical walkthrough now that the API is Baseline 2025.

阅读文章 →