JSON 配置文本:对象 / 数组,支持布尔、数字样式的字符串、超出 JS 安全整数范围的大整数(转换上限 1000 层嵌套)
配置格式迁移
把 JSON 配置转成 YAML,并核对关键字段、数组与布尔值没有被静默改写——全部在浏览器本地完成。
这个问题与输入产出
2 空格缩进的 YAML 文本;流程页可整体复制,或下载为 config.yaml
3 步:JSON 格式化 → JSON 转 YAML → 下载标记,全部在浏览器本地运行
YAML → JSON 不在本流程内:用「JSON / YAML 转换」单项工具(也适合回读核对)
示例数据
示例数据 · 无敏感信息左侧是一段虚构的服务配置(示例数据),右侧是它经过「配置格式互转」流程后的真实运行输出, 不是示意文本。示例刻意包含了最容易在迁移中被改写的几类值:布尔、数组、数字样式的字符串、超出安全范围的大整数。
{
"app": {
"name": "inventory-api",
"version": "2.4.1",
"buildNumber": "20260926",
"replicas": 3,
"timeoutMs": 8000,
"debug": false
},
"database": {
"host": "127.0.0.1",
"port": 5432,
"name": "inventory",
"readonly": true,
"pool": { "minIdle": 2, "maxOpen": 16 }
},
"featureFlags": {
"fastSearch": true,
"legacyExport": false,
"grayPercent": 25
},
"upstream": {
"endpoint": "https://example.internal/api",
"retry": { "attempts": 3, "backoffMs": [100, 400, 1600] },
"traceId": "123456789012345678"
},
"snowflakeSample": 1234567890123456789,
"notes": "示例配置:核对字段、数组与布尔值转换后是否保持原样"
}app:
name: inventory-api
version: 2.4.1
buildNumber: '20260926'
replicas: 3
timeoutMs: 8000
debug: false
database:
host: 127.0.0.1
port: 5432
name: inventory
readonly: true
pool:
minIdle: 2
maxOpen: 16
featureFlags:
fastSearch: true
legacyExport: false
grayPercent: 25
upstream:
endpoint: https://example.internal/api
retry:
attempts: 3
backoffMs:
- 100
- 400
- 1600
traceId: '123456789012345678'
snowflakeSample: 1234567890123456789
notes: 示例配置:核对字段、数组与布尔值转换后是否保持原样
想自己跑一遍:复制示例 JSON,进入流程页粘贴到「流程输入」,点「运行全部」。想核对自己的数据是否被改写:对照下方核对清单, 或把输出 YAML 用「JSON / YAML 转换」转回 JSON 后做差异比较。
处理步骤与每一步为什么需要
第 1 步 · JSON 格式化
先把文本真正解析成结构,而不是直接做字符串替换。语法错误在这一步暴露,报错带行列定位;重复键在这里告警(后出现的键会覆盖前者);后面两步拿到的必然是一份解析成功的结构。
第 2 步 · JSON → YAML
类型保真规则在这一步生效:像数字的字符串自动加引号(buildNumber: '20260926'),布尔保持 true / false,超出安全范围的大整数按原文文本输出并附告警——这些正是「不被静默改写」的核对点。
第 3 步 · 下载标记
只把导出文件名定为 config.yaml,不改变内容。真正的文件落盘只发生在你点「下载」的那一刻,由浏览器完成;点之前数据一直只在页面内存里。
转换后核对清单(怎么算迁移完成)
debug: false、readonly: true 保持无引号的 true / false,没有变成字符串
backoffMs 的 100 / 400 / 1600 元素与顺序原样保留,仍是列表
buildNumber: '20260926'、traceId: '123456789012345678' 带引号——不带引号的数字样式值会被 YAML 读取方当成数字
snowflakeSample: 1234567890123456789 按原文输出(第 2 步 note 同时告警:下游按数值解析仍可能丢精度)
能下载 config.yaml,并且上面四类值都与原文件一致,才算完成——下载下来的就是右侧这份 YAML 的同款结果。
用你的数据完成迁移
进入「配置格式互转」流程页,把 JSON 粘贴到「流程输入」后点「运行全部」。你的数据不经过本页,也不进入 URL 或分享链接。
常见失败原因
第 1 步失败并中断。示例:删掉一个右花括号后运行,提示「JSON 解析失败:第 5 行第 3 列附近:对象属性之间缺少逗号或右花括号」。即使手动关闭「失败时中断流程」让剩余步骤跑完,「流程输出」也会停用复制 / 下载,不会把未转换的原始输入当成 config.yaml 存盘。
第 1 步 JSON 解析失败,提示「JSON 解析失败:出现意外字符,不是合法的 JSON」。需要的是先走 YAML → JSON(单项工具),再进入本流程。
点「运行全部」会提示「请先填写或接收流程输入」,不会产生任何步骤结果,也不会显示成成功。
不是失败:流程继续,第 1 步 note 告警「检测到重复键:…(后出现的键覆盖前者)」。迁移配置前应先改掉重复键,否则结果以最后一次取值为准。
不是失败:YAML 文本按原文输出以保留精度,但第 2 步 note 明确告警——下游若按数值解析(而非字符串)仍可能丢失精度,需要消费方约定读取方式。
本流程最多转换 1000 层嵌套。超过时第 1 步就会明确失败并提示减少嵌套,不会等到 YAML 转换时才出现因运行环境而异的栈溢出。
数据处理说明
- 输入与每一步的中间结果只在本次页面内存中顺序传递,离开页面即清除,不发送到任何服务器。
- 本页与流程页都不把你的数据写进 URL、分享链接或站点统计;本页只有固定示例,不接收输入。
- localStorage 只保存流程定义与运行记录摘要(状态、耗时),不保存输入、输出或中间结果。
- 唯一的文件落盘发生在你点「下载」时,由浏览器生成本地文件。