什么是YAML?
YAML的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。尽管它比较适合用来表达层次结构式(hierarchical model)的数据结构,不过也有精致的语法可以表示关系性(relational model)的数据。由于YAML使用空白字符和分行来分隔数据,使得它特别适合用grep/Python/Perl/Ruby操作。其让人最容易上手的特色是巧妙避开各种封闭符号,如:引号、各种括号等,这些符号在嵌套结构时会变得复杂而难以辨认。
常见问题(FAQ)
为什么在线 JSON 格式化提示「格式错误」,但接口返回的数据明明能用?
常见原因是:字符串里仍带有未反转义的引号、末尾多余逗号、单引号包裹、或从日志里复制时混入了 BOM/不可见字符。请先用「去除转义」或粘贴到纯文本编辑器去掉首尾空白,再格式化;若内容来自接口,可先压缩成一行再校验,便于定位首个非法字符位置。
JSON 里中文被显示成 \uXXXX 这种 Unicode,是正常的吗?
是正常的。许多序列化库默认把非 ASCII 转成 \u 转义,语义与直接写中文完全一致。若希望可读性更好,可在支持「不转义 Unicode」的导出选项里输出;在线工具侧通常按原始字节解析,不会改变数据含义。
JSON 和 JavaScript 对象字面量有什么关键区别?
JSON 是数据交换格式:键必须用双引号、不能有函数/undefined、不能有注释与尾逗号。JS 对象字面量是语言语法,更宽松。把「长得像 JSON」的 JS 对象直接粘贴进格式化器,若含单引号键或未加引号的键,会校验失败,需要先改成严格 JSON。
特别大的 JSON 在线格式化会卡死浏览器吗?
有可能。超大文本解析与语法高亮都会占用主线程内存。建议:优先在本地或命令行用流式工具处理;在线场景可先「压缩」减小体积、分段粘贴,或关闭不必要的实时校验/高亮后再操作。
格式化失败时,如何更快找到出错的那一段?
可先用「压缩」去掉换行,让错误信息里的「行号/列号」更集中;或二分法:删掉一半内容再试,缩小出错片段。若是嵌套引号问题,重点检查字符串值内是否未转义双引号。

