XML 转 JSON
把任意 XML 文档解析成 JSON。重复的同名子元素会合并成数组,属性与文本内容都会保留,XML 格式错误会在转换前提示。
把 XML 文档解析成 JSON:重复的同名兄弟元素会变成数组,属性和文本内容都会保留,而无效的 XML 会在开始转换之前就报出问题所在的位置。
当 API 或导出文件给你的是 XML,而你其余的工具体系都说 JSON 时很有用——SOAP 响应、数据源、配置导出都是如此。属性会和子元素一起保留,所以不会有内容被丢掉,之后也很容易把结构映射到你自己的模式里。
如何把 XML 转换成 JSON
粘贴你的 XML
转换并检查结构
复制或下载 JSON
常见问题
重复元素是怎么处理的?
同名标签的兄弟元素会变成数组,不论有几个,所以只有一个元素的列表依然解析为列表,而不是单个对象。
属性会怎样?
它们会作为属性(键值)保留在元素内容旁边,因此不会丢失。如果你的结构期望单独的 attributes 对象,在映射步骤里调整命名即可。
可以保留元素原本的顺序吗?
JSON 对象本质上无序,所以元素顺序无法保证。如果顺序在语义上很重要,请保留源 XML 作为参照。
为什么我的 XML 被拒绝了?
常见原因是标签没有闭合、命名空间前缀未声明,或者 XML 声明之前有多余文本。错误信息会指出解析失败的位置。
支持 CDATA 和命名空间吗?
CDATA 区块会按文本读取,命名空间前缀会作为元素名的一部分保留,用于忠实映射时通常正是你想要的。
我的 XML 会被上传吗?
不会,解析在你的浏览器里本地完成。
一览
| 输入 | XML |
|---|---|
| 多个文件 | 否 |
| 运行位置 | 在你的浏览器中——文件永远不会被上传 |
| 离线可用 | 是 — 页面加载完成后 |
| 价格 | 免费,无需注册,无水印 |
选择数据格式
JSON 是 API 返回以及程序读取的任何数据的默认格式:它天然处理嵌套结构、数字、布尔值和 null,而且每种语言都能解析它。CSV 更小,能直接打开进表格软件,但它无法表达嵌套,在分隔符、引号规则和字符集上也没有共同标准——而这正是转换出错的地方。XML 冗长,但能承载属性、混合内容和模式,所以它仍然主导着文档格式和遗留系统集成。YAML 对配置来说最易读,但它对空白敏感,还有出人意料的类型强制转换(「no」会变成 false,像 1.10 这样的版本号会变成 1.1)。请选择使用方工具偏好的格式,而不是看起来最漂亮的格式。
转换在哪里悄悄出错
大多数转换缺陷与语法无关,而与含义有关。一列邮编的 CSV 字段会在表格软件猜它是数字的那一刻丢掉前导零;一个很长的 ID 会超出浮点精度;日期会因为先写日还是先写月而意思大变。JSON 的键是无序的,但数组是有序的,排序键的工具不会改变任何东西,而排序数组的工具会改变数据。Unicode 是另一个陷阱:文本可能以 UTF-8、UTF-16 或带字节顺序标记的形式到来,解码器猜错就会把带重音的字符变成乱码。在信任任何转换之前,抽查第一行和最后一行、任何带前导零的字段,以及任何含有引号、逗号或换行的字段。