这个工具做什么
把 JSON 对象生成 XML:对象键变成标签,嵌套结构变成父子层级,特殊字符自动转义。老系统只认 XML 接口、要生成 sitemap 雏形、或者需要给某个只支持 XML 配置的工具喂数据时,这一步不用再手写模板。
它和站内的「XML 转 JSON」遵循同一套约定:解析 XML 时属性输出为 @_ 前缀的键,生成 XML 时 @_ 前缀的键也会变回属性——所以同一个数据在两个方向之间往返不会丢信息。
如何使用
- 第一步:粘贴 JSON 整段 JSON 粘进输入框。语法错误会定位到第几行第几列附近,不会生成一份半成品 XML 让你猜哪里坏了。
- 第二步:命名根元素 XML 必须有唯一的根元素,JSON 顶层会被包进这个标签里——默认叫 root,可以改成 config、items 等任何合法名字。
- 第三步:生成并复制 默认带缩进便于阅读;关掉「格式化缩进」则输出单行(体积更小,适合接口返回)。特殊字符一律转义,产物可以直接被任何 XML 解析器读取。
限制与边界
不做 DTD、XSD 与命名空间声明;不提供 CDATA 选项(文本一律转义);不含空格或特殊字符的键之外,非法标签名会被清洗而不是报错——因此「键名决定标签名」这一点要在设计 JSON 结构时就考虑。单文件上限 10MB,超出会明确报错。
常见问题
为什么我的键名被改了?
XML 标签名不允许空格、且不能以数字开头。my key 会变成 my_key,1st 会变成 _1st。若需要原始键名,请把它放到属性或值里,而不是当键用。
怎么生成 XML 属性?
给键加 @_ 前缀:{"@_id": "7"} 生成 <item id="7">。这与站内「XML 转 JSON」的输出约定对称,两个方向往返一致。
顶层数组怎么处理?
XML 必须有唯一根元素,所以数组会包进根元素下的一组 <item>。如果希望条目用别的标签名,把 JSON 改成对象数组的形式(如 {"row": [...]})。
中文标签可以用吗?
严格来说 XML 1.0 允许部分非 ASCII 标签,但兼容性差异大。本工具把非 [A-Za-z0-9_.-] 的字符统一替换为下划线,保证任何解析器都能读。
能转出带 CDATA 的 XML 吗?
不能。文本一律转义(< 变 <),这在任何解析器中语义一致,也避免数据里出现 ]]> 破坏结构。需要 CDATA 的场景请转换后手工调整。
数据会被上传吗?
不会。生成在浏览器内完成,页面不发送包含数据的请求;内网接口结构、密钥样式的键都不会离开设备。