[{"data":1,"prerenderedAt":217},["ShallowReactive",2],{"page-zh":3,"article-list-zh":127,"article-zh-yaml-indentation-and-line-width":149},{"id":4,"title":5,"body":6,"description":17,"extension":18,"faqLabel":19,"faqTitle":20,"faqs":21,"footerFree":40,"footerLocal":41,"footerNavigate":42,"footerOutput":43,"footerTagline":44,"intro":45,"kicker":46,"limits":47,"limitsIntro":60,"limitsLabel":61,"limitsTitle":62,"mappingIntro":63,"mappingLabel":64,"mappingNoteLabel":65,"mappingTitle":66,"mappings":67,"meta":92,"navigation":93,"notes":94,"notesLabel":104,"notesTitle":105,"path":106,"seo":107,"seoTitle":108,"stem":109,"useCases":110,"useCasesIntro":123,"useCasesLabel":124,"useCasesTitle":125,"__hash__":126},"pages\u002Fzh-cn\u002Findex.md","JSON 转 YAML 转换器",{"type":7,"value":8,"toc":13},"minimark",[9],[10,11,12],"p",{},"把有效 JSON 转换成易读 YAML，整个过程仅在当前浏览器标签页中完成。",{"title":14,"searchDepth":15,"depth":15,"links":16},"",2,[],"在浏览器中把有效 JSON 转换为易读 YAML。可选择缩进和行宽，数据无需上传即可复制或下载。","md","常见问题 \u002F 05","生成 YAML 文件前需要了解的事",[22,25,28,31,34,37],{"question":23,"answer":24},"JSON 会发送到服务器吗？","不会。JSON 解析和 YAML 生成都在浏览器中完成，本地文件通过 File API 读取。",{"question":26,"answer":27},"YAML 会保留 JSON 的数据类型吗？","字符串、数字、布尔值、null、数组和对象都会在 YAML 中表示；读取方仍可能应用自己的 YAML schema。",{"question":29,"answer":30},"可以选择缩进吗？","可以。转换器支持两个或四个空格，并提供多种换行宽度。",{"question":32,"answer":33},"为什么输出中的键顺序没有改变？","JavaScript 通常保留 JSON 的插入顺序，本工具不会按字母重新排序键。",{"question":35,"answer":36},"转换器会添加 YAML 注释或锚点吗？","不会。JSON 中没有注释、锚点、别名或自定义标签，转换器无法推断这些信息。",{"question":38,"answer":39},"JSON 转 YAML 可以完全还原吗？","支持的数据值通常可以再次转换回来，但引号、空格、换行方式和注释无法恢复成原始格式。","免费使用","不在服务器保存","导航","输出","在浏览器本地生成易读配置的 JSON 转 YAML 工具。","把严格的 JSON 转换成更适合审阅、编辑和配置文件使用的 YAML。","去掉大括号，让配置更易读",[48,51,54,57],{"title":49,"body":50},"无法自动生成注释","JSON 本身没有注释标记，因此转换器无法可靠推断 YAML 说明。需要时请在转换后人工补充。",{"title":52,"body":53},"重复键在解析后已经消失","解析后的 JSON 对象不能同时保留两个同名属性。依赖转换结果前应先验证原始输入。",{"title":55,"body":56},"超大数字可能损失精度","JSON 数字按照 JavaScript 数值行为解析。标识符和高精度整数应在源数据中使用字符串。",{"title":58,"body":59},"往返转换会改变排版","支持的数据值通常可以保留，但引号、空格、换行宽度和注释不会恢复成原始形式。","生成的 YAML 表示解析后的 JSON 值，而不是逐字复制原始文本。在将文件提交为配置前，需要了解这些边界。","往返转换 \u002F 04","易读的输出仍然需要检查","JSON 的数据类型精简而明确。YAML 可以用更少的标点表示相同的对象、数组、字符串、数字、布尔值和 null。","类型映射 \u002F 03","转换结果","从 JSON 值到易读 YAML",[68,72,76,80,84,88],{"json":69,"yaml":70,"note":71},"\"name\": \"Ada\"","name: Ada","安全的字符串可以省略引号；可能产生歧义时，序列化器会自动添加引号。",{"json":73,"yaml":74,"note":75},"\"enabled\": true","enabled: true","JSON 布尔值会继续使用小写 true 或 false。",{"json":77,"yaml":78,"note":79},"\"count\": 42","count: 42","JSON 数字保持数字类型，但已经经过 JavaScript 数值解析。",{"json":81,"yaml":82,"note":83},"\"items\": [\"a\", \"b\"]","items → - a \u002F - b","数组会转换为 YAML 序列，并保持元素顺序。",{"json":85,"yaml":86,"note":87},"\"value\": null","value: null","JSON null 会明确写成 YAML null，避免与缺少键混淆。",{"json":89,"yaml":90,"note":91},"\"meta\": {\"id\": 7}","meta → id: 7","对象会转换为 YAML 映射，通常保持属性插入顺序。",{},true,[95,98,101],{"title":96,"body":97},"JSON 必须先通过验证","注释、尾随逗号、undefined 和 JavaScript 对象字面量会被拒绝，不会被静默修复。",{"title":99,"body":100},"输出格式可以选择","两种缩进和常用行宽覆盖大多数 YAML 风格需求，又不会把工具变成复杂 IDE。",{"title":102,"body":103},"有些信息无法凭空恢复","JSON 不包含注释、锚点、自定义标签或原始 YAML 排版，转换器无法重新生成这些信息。","转换说明 \u002F 02","从大括号改成缩进时会发生什么","\u002Fzh-cn",{"title":5,"description":17},"JSON 转 YAML 在线转换器 — 生成清晰的 YAML","zh-cn\u002Findex",[111,115,119],{"title":112,"body":113,"code":114},"应用配置","把生成的 JSON 设置转换为 YAML 优先的应用、CLI 或服务配置。","app.yaml",{"title":116,"body":117,"code":118},"CI 与部署文件","从机器生成的 JSON 创建便于阅读和维护的流水线或部署清单。","pipeline.yml",{"title":120,"body":121,"code":122},"测试数据与文档","用更紧凑的格式展示嵌套示例，便于读者浏览和添加说明。","example.yaml","JSON 擅长机器交换；当配置需要多人阅读和修改时，YAML 往往更清晰。","使用场景 \u002F 01","YAML 更适合作为人工维护的配置","79rWXqDeDjCGYmwjga4lN5BdeAA7qlX3VPrfa5ZPwko",[128,133,137,141,145],{"slug":129,"title":130,"description":131,"eyebrow":132},"fix-invalid-json-before-yaml","转换为 YAML 前如何修复无效 JSON","在生成 YAML 前排查尾随逗号、单引号、注释和未闭合的括号。","技术指南",{"slug":134,"title":135,"description":136,"eyebrow":132},"json-to-yaml-configuration","将 JSON 转换为 YAML 配置文件","把 JSON 转换成易读的 YAML，并在用于配置前核对类型、字段、密钥和兼容性。",{"slug":138,"title":139,"description":140,"eyebrow":132},"json-vs-yaml","JSON 与 YAML：语法和使用场景","比较 JSON 和 YAML 的类型、注释、缩进，以及结构化数据转换时的取舍。",{"slug":142,"title":143,"description":144,"eyebrow":132},"preserve-json-types-in-yaml","生成 YAML 时保留 JSON 数据类型","了解转换时如何保留字符串、数字、布尔值、null、数组和对象。",{"slug":146,"title":147,"description":148,"eyebrow":132},"yaml-indentation-and-line-width","YAML 缩进与行宽设置","在不改变对象和数组层级的前提下，生成易读且稳定的 YAML。",{"id":150,"title":147,"body":151,"description":148,"extension":18,"eyebrow":132,"faqs":155,"intro":165,"meta":166,"navigation":93,"path":167,"relatedGuides":168,"sections":169,"seo":211,"seoTitle":212,"slug":146,"stem":213,"type":214,"updated":215,"__hash__":216},"articles\u002Fzh-cn\u002Farticles\u002Fyaml-indentation-and-line-width.md",{"type":7,"value":152,"toc":153},[],{"title":14,"searchDepth":15,"depth":15,"links":154},[],[156,159,162],{"question":157,"answer":158},"处理YAML 缩进与行宽会改变原始数据吗？","如果操作只改变表示方式，数据含义原则上不应变化；但解析器可能展开别名、规范化数字、丢弃注释或选择不同文本风格。应比较解析结构并核对目标系统规则。",{"question":160,"answer":161},"怎样验证结果可靠？","在条件允许时分别解析操作前后的内容，比较键名和值类型，再把结果交给真实目标程序测试。只靠肉眼对比可能遗漏 null、数字、布尔值、编码或重复键差异。",{"question":163,"answer":164},"哪些情况不适合自动转换？","当源文件使用实现专属扩展、重复键、自定义标签、承载运维信息的注释，或含有无法安全表示的高精度数字时，不应无人值守地自动转换。","缩进在 YAML 中直接表达结构。统一风格有助于审查，也能避免无意义的格式差异。",{},"\u002Fzh-cn\u002Farticles\u002Fyaml-indentation-and-line-width",[134,142,138],[170,175,180,185,194,200,205],{"title":171,"paragraphs":172},"保持缩进一致",[173,174],"两个空格是常见选择，也能保持文件紧凑。不要使用制表符定义结构层级。","序列项目应对齐，嵌套内容应再缩进一级。",{"title":176,"paragraphs":177},"合理处理行宽",[178,179],"拆分长行可能改善阅读，但折叠块和文字块的语义不同。","如果目标系统依赖精确换行，不要自动换行字符串。",{"title":181,"paragraphs":182},"保持差异清晰",[183,184],"项目中应固定使用同一套序列化设置，让代码审查聚焦数据变化而不是格式变化。","运行格式化工具后仍应重新验证 YAML。",{"title":186,"paragraphs":187,"bullets":190},"可靠的分步处理流程",[188,189],"应把YAML 缩进与行宽视为一次有明确输入、预期结构和目标系统的数据转换。先复制原文，在改变表示方式前完成验证，再提取一个足以复现问题的最小样例。这样才能把语法错误与数据模型或业务错误分开。","每次只做一项修改，并在每次修改后重复同一套验证。自动化流水线遇到解析错误时应直接失败，不能发布残缺或猜测修复的结果。需要审计时，应把原始输入和生成文件一同保留。",[191,192,193],"先选取具有代表性的输入并保留原始副本，以便审查差异或重复执行转换。","不要只看渲染后的文字，还要检查解析结构；键名、标量类型、数组顺序和 null 才是下游程序真正收到的数据。","在真实目标系统中测试结果，并记录项目依赖的解析器、模式、编码和格式假设。",{"title":195,"paragraphs":196,"code":199},"实例与验证方法",[197,198],"下面的示例刻意保持简短，便于逐项核对。处理真实文件时也应检查每个键、标量类型、数组顺序以及嵌套边界，而不是只确认页面显示“成功”。","转换或压缩成功，只能证明源文本可以被解析。还应比较操作前后的结构化值，并使用生产环境真正采用的库或平台重新读取结果，才能发现实现差异。","service:\n  environment:\n    LOG_LEVEL: info\n    RETRIES: \"3\"",{"title":201,"paragraphs":202},"限制与边界情况",[203,204],"YAML 缩进与行宽的难点通常来自“语法有效”和“业务可用”之间的差别。解析器接受的数据仍可能缺少字段、含义模糊、体积过大，或不符合目标系统的模式。","不要盲目修复或规范化陌生文件。重复键、隐式类型、别名、数字精度、Unicode、换行符和超大输入都需要明确策略；目标系统的规则更严格时，应以目标规则为准。",{"title":206,"paragraphs":207,"bullets":210},"生产环境检查清单",[208,209],"发布前至少测试正常文档、空值、深层嵌套、非 ASCII 文本和一个故意损坏的样例。如果其他系统必须复现完全相同的输出，还应记录工具或依赖库版本。","当数据参与构建、部署、API 或配置时，应把验证加入持续集成。上线前审查差异并保留回滚副本，上线后观察第一个真实使用方，不能把“语法通过”等同于“运行正确”。",[191,192,193],{"title":147,"description":148},"JSON 转换后的 YAML 缩进与行宽","zh-cn\u002Farticles\u002Fyaml-indentation-and-line-width","guide",null,"0rQ6ZfLuLzIqElpPZwaoMlRi0ezR3AZDo8hqJSMELT4",1791974047371]