浏览器本地处理

JSON / JSON5 互转

使用 JSON5 解析器读取注释、单引号、无引号键、十六进制数和尾随逗号,再输出标准 JSON;反向生成便于阅读的 JSON5,但不会恢复原注释。

浏览器本地处理
0 / 1,000,000
转换结果

工具指南

什么是JSON / JSON5 互转?

JSON 与 JSON5 互转适合处理包含注释、单引号、无引号键、十六进制数或尾随逗号的开发配置。JSON5 输入会先由专用解析器转成数据结构,再输出严格 JSON;反向可生成更宽松的 JSON5 表示,但无法恢复原始注释、引号选择和手工排版。常见使用场景包括:把开发配置 JSON5 转为只接受标准 JSON 的接口输入。;为需要人工维护的配置生成较易读的 JSON5。;定位注释、尾逗号和特殊数值造成的兼容问题。页面同时列出输入边界、输出规则和限制,便于在复制结果或投入实际流程前核对格式、语义与安全注意事项。

适用场景

  • 把开发配置 JSON5 转为只接受标准 JSON 的接口输入。
  • 为需要人工维护的配置生成较易读的 JSON5。
  • 定位注释、尾逗号和特殊数值造成的兼容问题。

使用方法

  1. 确认输入是否为严格 JSON 或 JSON5。
  2. 加载示例检查键和数组排版。
  3. 执行转换并修复解析错误。
  4. 复制前确认注释和数值规范化影响。
  5. 先使用页面提供的复杂示例验证当前选项和运行方向,再替换为自己的数据。
  6. 检查输出区、状态提示和限制说明,确认结果符合预期后再复制、下载或继续处理。

可运行示例

工作区中的“示例 1”和“示例 2”按钮会载入对应内容。两个示例覆盖不同结构、方向或边界,可以直接运行并观察输出与状态提示。

示例 1

{"name":"JSONLane","release":{"tools":40,"ready":true},"features":["comments","trailing commas"]}

示例 2

// JSONLane 本地配置
{
  name: 'JSONLane',
  release: { tools: 40, ready: true },
  colors: [0x10243e, 0x26b6a4,],
}

输入规则

  • JSON 方向仍要求严格标准语法。
  • JSON5 可使用其标准支持的注释和宽松写法。
  • Infinity、NaN 和无法表示为 JSON 的值在导出时会拒绝。
  • 文本输入在运行前按字符计数,当前页面上限为 1,000,000;文件类功能另按页面显示的文件上限执行。
  • JSON5 注释和原始引号风格不会保留。

输出规则

  • JSON5 转 JSON 会删除注释并规范化数值。
  • JSON 转 JSON5 可能使用无引号键和尾随逗号。
  • 对象与数组的数据顺序保持解析后的顺序。
  • 输出只反映当前输入、方向和选项;切换模式或修改输入后应重新运行,不应把旧结果当成新结果。
  • Infinity、NaN 等非 JSON 数值不能输出为标准 JSON。

限制与注意事项

  • JSON5 注释和原始引号风格不会保留。
  • Infinity、NaN 等非 JSON 数值不能输出为标准 JSON。
  • JSON 转 JSON5 的输出不是严格 JSON。

数据处理说明

JSON5 解析和重新打印都由页面内置库在浏览器中完成,不会执行输入表达式或上传配置。关闭或刷新页面后,本工具不会保留本次数据。

FAQ

转换会上传JSON5内容吗?

不会。解析、转换和结果生成都在当前浏览器标签页内完成。

能保证完全无损往返吗?

不能。不同格式的类型、注释、顺序和二进制能力不同,页面会说明主要损失点。

为什么某些输入会被拒绝?

工具会拒绝不安全整数、危险键、过深结构或目标格式无法明确表示的值,避免静默改写。

注释能保留吗?

不能。解析后只剩数据值,重新输出无法恢复注释位置和内容。

为什么 Infinity 被拒绝?

标准 JSON 不支持 Infinity 和 NaN,输出为 JSON 时必须拒绝这些值。

JSON5 是否适合 API 请求?

只有明确声明支持 JSON5 的接口才可以;多数 JSON API 只接受严格 JSON。

更新日期: 2026-08-09