JSON 实用技巧与指南
面向开发者的 JSON、YAML 与 API 数据实用文章。
JSON 第 0 位 Unexpected Token <:你拿到的是 HTML
“Unexpected token <” 错误表示 JSON.parse 收到的是一个 HTML 页面(404、登录跳转或错误的 URL),而不是 JSON。这里讲清楚原因,附上坏的和修好的 fetch 示例。
5 min readJSON 第 0 位 Unexpected Token u:在解析 undefined
“Unexpected token u” 错误意味着你调用了 JSON.parse(undefined)。看清楚为什么 undefined 会变成 “undefined”、如何防御,以及一个安全解析助手函数。
5 min readJSON 中未终止的字符串:原因与修复
JSON 中未终止的字符串意思是有一个开引号却没有闭引号 —— 通常是未转义的引号、原始换行符或被截断的数据。坏例子与修复示例。
5 min readJSON 中错误的转义字符:原因、示例与修复方法
修复 JSON 中来自 \x 转义、Windows 路径、正则字符串、畸形 \u 以及双重编码 JSON 的「bad escaped character」错误。
12 min readJSON 数据之后出现非空白字符:修复方法
这个错误意味着一个完整的 JSON 值后面还有多余内容 —— 拼在一起的对象、被当成单块解析的 NDJSON,或末尾的垃圾。如何找出并去掉多余数据。
5 min readJSON Pretty Print vs JSON Format:有什么区别?
对 JSON 来说,pretty print、format 和 beautify 是同一回事。讲清楚为什么、真正的区别是什么(minify、validate、tree view),以及如何在线美化 JSON。
5 min readJSON 树形查看器:以可折叠树浏览 JSON
把 JSON 看作交互式可折叠树。展开和折叠任意对象或数组,以浏览大型嵌套负载 —— 在浏览器中完成,无需上传。
6 min readYAML 格式化器:格式化、重新缩进与校验 YAML
YAML 格式化器会重新缩进并规范化 YAML,让它既可读又便于 diff。学习缩进规则、类型陷阱,以及何时格式化、何时转换为 JSON。
6 min readXML 转 JSON:属性、文本节点、数组与命名空间
把 XML 正确地转成 JSON:属性、文本节点、重复元素、命名空间如何映射 —— 带约定、边角情况以及 JS / Python 代码。
8 min readJSON 转 XML:根元素、数组与属性映射
把 JSON 转成 XML:根元素、@ 属性、数组与转义——用 JS、Python 或在线完成。免费试用转换器。
7 min read如何把 JSON 转成 CSV(以及反过来)
在 JavaScript、Python 和在线把 JSON 转成 CSV、CSV 转成 JSON。涵盖 array-of-objects 映射、引号规则、嵌套值与类型推断。
7 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 钩子,以及它会默默丢弃或抛错的值。
8 min readJSON vs YAML:区别与各自适合的场景
JSON 与 YAML 对比:语法、类型、注释,以及像 Norway problem 这类坑。YAML 是 JSON 的超集 —— 何时选哪个、如何相互转换。
7 min read如何解码 JWT 并读取其 claims
JWT 由三段 Base64url 组成。学习在 JavaScript 和 Python 里解码 header 与 payload —— 以及为什么解码一个 token 并不等于校验它。
8 min readJSON 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 readjq 教程:过滤与转换 JSON
在命令行学 jq:安装、美化、选择、过滤、map 和编辑 JSON——附可复制的命令配方。
7 min read如何从 JSON 生成 TypeScript 接口
将 JSON 转成 TypeScript 接口 —— 在线或代码均可。处理嵌套对象、可选与 nullable 字段,并保持类型同步。
10 min read什么是 JSON Schema?一份带示例的实用指南
什么是 JSON Schema?描述并校验 JSON 结构——核心关键字、真实示例,以及在 JavaScript 和 Python 中校验。了解详情。
10 min read如何压缩 JSON —— 以及什么时候应该这么做
压缩 JSON 会移除所有不必要的空白以减小体积、加快 API 响应。学习在 JavaScript、Python、命令行与浏览器中压缩 JSON —— 以及什么时候不必折腾。
9 min readJSON 查看器 vs JSON 格式化器:有什么区别?
JSON 查看器 vs 格式化器:查看器渲染可交互树,格式化器美化输出文本。学习区别与使用时机。
8 min read修复 “[object Object] is Not Valid JSON” 与其他 JSON 语法错误
遇到 “[object Object] is not valid JSON” 或 “expected a JSON object, array or literal”?学会这些错误的成因、如何修正 JSON 语法、修复尾随逗号,以及自动修复损坏的 JSON。
9 min readJSON 修复解析器到底是怎么工作的
尾随逗号、单引号、未加引号的键、Python 字面量、markdown 代码围栏 —— 在线 JSON 修复工具都能处理。学习修复解析器如何工作、何时用,以及如何让敏感数据留在本地。
7 min readJSON 格式示例:对象、数组与现实模式
可直接复制的 JSON 示例,涵盖每种数据类型、嵌套结构、REST API 响应、配置文件、日期格式与 GeoJSON —— 以及常见错误模式及其修复。
6 min read如何格式化 JSON:美化、校验与清理 JSON 文件
在 JavaScript 里用 JSON.stringify、在 Python 里用 json.dumps、在命令行里用 jq,或在浏览器里即时格式化 JSON。包括键排序、把 YAML 与 CSV 转成 JSON,以及真实的前后对比示例。
8 min read什么是 JSON?JSON 格式、语法与文件的完整指南
JSON(JavaScript Object Notation)是通用的数据交换格式。学习它的六种数据类型、让 JSON 严格的语法规则、.json 文件的用途,以及如何在各种语言中解析 JSON。
7 min read为什么不要把敏感的 JSON 粘进在线工具
把 JWT、API 密钥或 PII 粘进在线 JSON 工具,可能经由服务器日志、缓存和索引泄露。为什么浏览器原生工具更安全。
7 min readJSON 字符串字面量中的非法控制字符:修复方法
JSON 字符串里出现原始 tab、换行、NUL 字节或 ANSI 转义序列都会触发这个错误。学习为什么 JSON 规范禁止它们、它们如何混进来,以及如何剥除或转义。
6 min readJSON 第 1 位 Unexpected Token o:原因与修复
那个小写的 “o” 是 “[object Object]” 的第二个字符。你把一个 JavaScript 对象传给了 JSON.parse() 而不是字符串。本文列出这个错误的所有变体,以及每个的一行修复。
5 min readUnexpected End of JSON Input:为什么会出现以及如何修复
解析器在结构完成前耗尽了输入。原因从被截断的 API 响应到未闭合括号、再到空字符串都有。五种模式,五种修复。
5 min readBase64 不是加密:它能藏住什么,藏不住什么
Base64 是编码不是加密。看看为何密码、JWT 载荷、API 密钥、Basic 认证头、URL 数据和日志在 Base64 后依然可读。
15 min read如何比较两份 JSON 文件:算法与工具
纯文本 diff 会把键重排序误报为改动。真正的 JSON diff 如何工作:键规范化、LCS 行 diff、语义比较。
9 min readJSON vs JavaScript 对象:为什么不允许单引号
很多开发者把 JS 对象字面量当作 JSON。它们并不一样:单引号、未加引号的键、尾随逗号、undefined、NaN —— 这里把每处区别配示例讲清楚。
7 min readJSON 中的尾随逗号:为什么 { "a": 1, } 会抛错
JSON 对象或数组最后一项后面一个多余的逗号就会触发 SyntaxError。学习为什么 JSON 禁止尾随逗号、它们从哪来,以及如何去掉。
6 min read如何修复 JSON.parse 的 “Unexpected Token” 错误
“Unexpected token <” 或 “Unexpected token u in JSON at position 0” —— 这类错误会让应用直接停摆。本文讲清楚每个变体的含义,以及具体如何修。
6 min read在 JavaScript 中如何处理损坏的 JSON
JSON.parse() 毫不留情 —— 一个多余的逗号就能让应用崩溃。常见的 JSON 破损模式、try/catch 捕获错误,以及何时需要修复。
8 min readJSON.parse Source Access: context.source, BigInts, JSON.rawJSON, and LLM JSON
Use JSON.parse reviver context.source and JSON.rawJSON safely: feature-detect support, rescue large numeric IDs, serialize BigInts, and harden repaired LLM JSON output.
12 min read