JSON 转 XML

JSON 对象生成 XML:键名成为标签,@_ 前缀识别为属性,特殊字符自动转义。

文件不上传 .json、.txt 单文件最大 10MB
文件不上传

参数

XML 必须有唯一根元素,JSON 顶层会包在这个标签里。

这个工具做什么

把 JSON 对象生成 XML:对象键变成标签,嵌套结构变成父子层级,特殊字符自动转义。老系统只认 XML 接口、要生成 sitemap 雏形、或者需要给某个只支持 XML 配置的工具喂数据时,这一步不用再手写模板。

它和站内的「XML 转 JSON」遵循同一套约定:解析 XML 时属性输出为 @_ 前缀的键,生成 XML 时 @_ 前缀的键也会变回属性——所以同一个数据在两个方向之间往返不会丢信息。

如何使用

  1. 第一步:粘贴 JSON 整段 JSON 粘进输入框。语法错误会定位到第几行第几列附近,不会生成一份半成品 XML 让你猜哪里坏了。
  2. 第二步:命名根元素 XML 必须有唯一的根元素,JSON 顶层会被包进这个标签里——默认叫 root,可以改成 config、items 等任何合法名字。
  3. 第三步:生成并复制 默认带缩进便于阅读;关掉「格式化缩进」则输出单行(体积更小,适合接口返回)。特殊字符一律转义,产物可以直接被任何 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 吗?

不能。文本一律转义(< 变 &lt;),这在任何解析器中语义一致,也避免数据里出现 ]]> 破坏结构。需要 CDATA 的场景请转换后手工调整。

数据会被上传吗?

不会。生成在浏览器内完成,页面不发送包含数据的请求;内网接口结构、密钥样式的键都不会离开设备。

相关工具