[{"data":1,"prerenderedAt":101},["ShallowReactive",2],{"json-guide-list-zh":3,"json-article-zh-fix-invalid-json":29},[4,9,14,19,24],{"slug":5,"title":6,"description":7,"eyebrow":8},"fix-invalid-json","如何修复无效 JSON","排查尾随逗号、单引号、注释、未闭合字符串和缺失的括号。","错误指南",{"slug":10,"title":11,"description":12,"eyebrow":13},"json-minification-explained","JSON 压缩是什么意思","了解如何移除 JSON 可选空白，同时保持解析后的数据值不变。","压缩指南",{"slug":15,"title":16,"description":17,"eyebrow":18},"json-minify-vs-compress","JSON 压缩空白与文件压缩的区别","比较移除空白与 gzip、Brotli 压缩，选择适合的减小体积方式。","方式对比",{"slug":20,"title":21,"description":22,"eyebrow":23},"json-whitespace-and-size","JSON 空白与真实文件大小","了解哪些空白可以移除，以及如何按 UTF-8 字节准确测量大小。","大小与编码",{"slug":25,"title":26,"description":27,"eyebrow":28},"minify-json-for-production","为生产环境压缩 JSON","在不牺牲验证、可维护性和审查质量的情况下使用紧凑 JSON。","生产指南",{"id":30,"title":6,"body":31,"description":7,"extension":38,"eyebrow":8,"faqs":39,"intro":49,"meta":50,"navigation":51,"path":52,"relatedGuides":53,"sections":54,"seo":96,"seoTitle":97,"slug":5,"stem":98,"type":99,"__hash__":100},"articles\u002Fzh\u002Farticles\u002Ffix-invalid-json.md",{"type":32,"value":33,"toc":34},"minimark",[],{"title":35,"searchDepth":36,"depth":36,"links":37},"",2,[],"md",[40,43,46],{"question":41,"answer":42},"处理无效 JSON会改变原始数据吗？","如果操作只改变表示方式，数据含义原则上不应变化；但解析器可能展开别名、规范化数字、丢弃注释或选择不同文本风格。应比较解析结构并核对目标系统规则。",{"question":44,"answer":45},"怎样验证结果可靠？","在条件允许时分别解析操作前后的内容，比较键名和值类型，再把结果交给真实目标程序测试。只靠肉眼对比可能遗漏 null、数字、布尔值、编码或重复键差异。",{"question":47,"answer":48},"哪些情况不适合自动转换？","当源文件使用实现专属扩展、重复键、自定义标签、承载运维信息的注释，或含有无法安全表示的高精度数字时，不应无人值守地自动转换。","压缩和格式化都要求输入有效 JSON。应从解析器报告的第一个错误开始，并检查它前面的标记。",{},true,"\u002Fzh\u002Farticles\u002Ffix-invalid-json",[10,25],[55,60,65,70,79,85,90],{"title":56,"paragraphs":57},"常见语法错误",[58,59],"JSON 的键和字符串必须使用双引号，不允许注释、尾随逗号、undefined、NaN 或 JavaScript 对象简写。","一个错误的引号或逗号可能引发多个后续报错。",{"title":61,"paragraphs":62},"利用行列位置",[63,64],"提示位置表示解析器无法继续的地方，真正原因可能是前面的引号、逗号、花括号或方括号。","每次修复一个错误，然后重新验证。",{"title":66,"paragraphs":67},"不要猜测原意",[68,69],"自动修复可能改变数据。应保留输入、修复源文件，并在使用前比较解析后的结构。","验证成功后再安全地格式化或压缩。",{"title":71,"paragraphs":72,"bullets":75},"可靠的分步处理流程",[73,74],"应把无效 JSON视为一次有明确输入、预期结构和目标系统的数据转换。先复制原文，在改变表示方式前完成验证，再提取一个足以复现问题的最小样例。这样才能把语法错误与数据模型或业务错误分开。","每次只做一项修改，并在每次修改后重复同一套验证。自动化流水线遇到解析错误时应直接失败，不能发布残缺或猜测修复的结果。需要审计时，应把原始输入和生成文件一同保留。",[76,77,78],"先修复解析器报告的第一个错误；一个漏掉的引号往往会引发许多后续假错误。","面对大文件时，保留错误附近的嵌套结构，将内容缩减成仍能复现问题的最小片段。","语法通过后还要检查必填字段、值类型、取值范围和业务规则。",{"title":80,"paragraphs":81,"code":84},"实例与验证方法",[82,83],"下面的示例刻意保持简短，便于逐项核对。处理真实文件时也应检查每个键、标量类型、数组顺序以及嵌套边界，而不是只确认页面显示“成功”。","转换或压缩成功，只能证明源文本可以被解析。还应比较操作前后的结构化值，并使用生产环境真正采用的库或平台重新读取结果，才能发现实现差异。","{\n  \"service\": \"api\",\n  \"retries\": 3,\n  \"enabled\": true\n}",{"title":86,"paragraphs":87},"限制与边界情况",[88,89],"无效 JSON的难点通常来自“语法有效”和“业务可用”之间的差别。解析器接受的数据仍可能缺少字段、含义模糊、体积过大，或不符合目标系统的模式。","不要盲目修复或规范化陌生文件。重复键、隐式类型、别名、数字精度、Unicode、换行符和超大输入都需要明确策略；目标系统的规则更严格时，应以目标规则为准。",{"title":91,"paragraphs":92,"bullets":95},"生产环境检查清单",[93,94],"发布前至少测试正常文档、空值、深层嵌套、非 ASCII 文本和一个故意损坏的样例。如果其他系统必须复现完全相同的输出，还应记录工具或依赖库版本。","当数据参与构建、部署、API 或配置时，应把验证加入持续集成。上线前审查差异并保留回滚副本，上线后观察第一个真实使用方，不能把“语法通过”等同于“运行正确”。",[76,77,78],{"title":6,"description":7},"修复无效 JSON：常见语法错误与示例","zh\u002Farticles\u002Ffix-invalid-json","guide","1Jspq54xckm2y7Bw3ajdLHhLzGEKT3MH1LBD4AY8Pb0",1791969047650]