XML转JSON转换器
把SOAP响应、RSS订阅源、配置文件或旧系统导出中的数据转成JavaScript、Python或无代码工具可以直接读取的JSON,无需手写解析器。
数据转换器
或将CSV, TSV, TXT … 文件拖放到此处 ·
单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除
文件在我们的服务器上处理,并在 30 分钟后删除。
CSV 和文本文件中分隔列的字符,读取和写入都适用。自动会从输入中检测,并以逗号写出。
UTF-8 适用于所有语言。如果 Windows 上的 Excel 打开 CSV 时重音字符或中日韩文字显示乱码,请选择带 BOM 的 UTF-8。
输入为 Excel、ODS 和 Numbers 时:只转换第一个工作表,或转换所有工作表(ZIP 中每个工作表一个 CSV,或 JSON 中每个工作表一个键)。
新电子表格中工作表标签的名称,最多 31 个字符。
对象数组会为每一行使用列名作为键;数组的数组更紧凑,并把表头作为第一个数组。
包裹所有行的外层元素名称;每一行会成为其中的一个 <row>。
用于 CREATE TABLE 和 INSERT 语句。只能使用字母、数字和下划线。
不同数据库的引号和列类型略有差异;请选择您要导入的数据库。
把日期单元格统一改写为一种格式。ISO (2026-10-18) 对数据库和代码最稳妥;保持原样则保留源文件中的显示方式。
使用方法
- 1
上传XML文件
将 .xml 文件拖到上传区域,每批最多 20 个,每个文件最大 95 MB。每个文件会单独转换。
- 2
选择易读格式或紧凑格式
格式化输出默认开启,会为 JSON 添加缩进,便于阅读和代码审查。若要得到适合 API 请求体的最小单行输出,可在高级设置中关闭它。
- 3
转换并使用JSON
点击转换为 JSON,下载 .json 文件,然后在你的代码或工具中加载。
上传 XML 并点击转换为 JSON:元素会变成键,重复元素会变成数组,属性会保留为带 @ 前缀的键,因此标签中的信息不会丢失。
哪些人需要XML转JSON转换器
XML 1.0 于 1998 年 2 月成为 W3C 推荐标准,此后十年里,系统之间基本都靠它沟通:SOAP 网络服务、RSS 和 Atom 订阅源、Office 文档、银行报文、商品目录。其中许多系统至今仍在运行。RFC 8259 中规定的 JSON 则成为新 Web API 的主流,因为 JavaScript 无需解析库就能读取它,而且它几乎能直接对应各种语言中的列表和字典。
所以需要转换的人,通常是在两个时代之间搭桥。前端开发者从支付或物流服务商收到 SOAP 响应,想要一个普通对象。在 Zapier 或 Make 中搭建自动化的人,要把供应商的 XML 订阅源接入更适合处理 JSON 的流程。数据工程师要迁移旧 Java 应用的配置文件,学生则需要把 RSS 订阅源转成 JSON 做课程作业。他们想要的都是同样的结构,只是不要尖括号。
XML转JSON:标签、属性和文本如何对应
<order id="A-77"> <customer>刘洋</customer> <total currency="EUR">59.90</total> <item sku="0042">台灯</item> <item sku="0108">LED 灯泡</item> </order>
| XML 结构 | 示例 | JSON 结果 |
|---|---|---|
| 根元素 | <order> | 顶层键 order |
| 属性 | id="A-77" | "@id": "A-77" |
| 仅含文本的元素 | <customer> | "customer": "刘洋" |
| 文本加属性 | <total currency="EUR"> 标签 | {"@currency": "EUR", "#text": "59.90"} |
| 重复元素 | 两个 <item> 标签 | "item": [ … , … ] 数组 |
| 注释 | <!-- note --> | 被丢弃;JSON 没有注释 |
XML
可扩展标记语言
XML 是 W3C 于 1998 年发布的结构化数据标记语言。它使用带属性的嵌套标签,并支持模式、命名空间和验证,因此适合处理复杂文档。RSS 订阅、SVG、Office 文档、站点地图以及许多企业和政府的数据交换都以它为基础。XML 比 JSON 冗长,但所有编程语言和许多电子表格工具都能读取。
- 压缩方式
- –
- 透明度
- –
- 动画
- –
- 发布年份
- 1998 · W3C
JSON
JavaScript 对象表示法
JSON 是一种轻量级结构化数据文本格式,由 Douglas Crockford 在 21 世纪初推广,并被标准化为 RFC 8259 和 ECMA-404。它用简单易读的语法表示对象、数组、字符串、数字、布尔值和 null。它是网络 API、配置文件以及几乎所有编程语言之间数据交换的默认格式。它没有内置注释、日期或模式,嵌套很深的大文件没有查看器就很难阅读。
- 压缩方式
- –
- 透明度
- –
- 动画
- –
- 发布年份
- 2001 · Douglas Crockford
当旧系统或企业系统的数据需要送入网页应用、脚本或自动化工具时,就需要把 XML 转成 JSON:JSON 在 JavaScript 中可原生解析,也能直接对应 Python 字典。
JSON无法表示的XML特性
两种格式描述的都是树结构,但 XML 带有 JSON 所没有的额外内容。命名空间由 W3C 于 1999 年定义,允许一份文档混用 soap: 和 xsi: 等词汇表;在 JSON 中,它们只能作为键名的一部分保留。注释和处理指令无处安放,会被丢弃。混合内容,即文本与子标签交错出现,比如 XHTML 段落中夹着一个加粗的词,在 XML 中合法,但在 JSON 中会变得很别扭,因此文档类 XML 更适合转换为 HTML 或 Markdown,而不是 JSON。
顺序是个微妙的问题。XML 会按顺序保留同级元素,而且 schema 可能依赖这一顺序;按照标准,JSON 对象的键是无序的。重复元素在数组内部会保持顺序,这已能覆盖大多数实际数据。如果 XML 是一份扁平的记录列表,最终要放进电子表格而不是代码里,可以用 XML 转 Excel 直接得到行和列,用 XML 转 CSV 则能生成用于数据库导入的文件。
XML转JSON转换器常见问题
为什么同一个元素在一个文件里是数组,在另一个文件里却是对象?
转换器只能根据文档中已有的内容来判断。如果一个订单里有三个 item 标签,items 就会变成数组;如果只有一个,就没有重复可言,会变成单个对象。读取这份 JSON 的代码应同时兼容两种结构,或者在循环前把单个对象包装成数组。
XML属性在JSON中如何表示?
每个属性都会变成一个在名称前加 @ 的键,因此 currency="EUR" 会变成 "@currency": "EUR"。当一个元素同时有属性和文本时,文本会放在它们旁边的 #text 键中。这种约定可以避免属性与子元素同名时发生冲突。
XML中的数字会转换为JSON数字吗?
XML 本身没有数据类型;标签中的 42 和 "42" 看起来完全一样。因此所有值都会以字符串输出,这样邮政编码以及 007 这类 ID 不会出错。解析之后,请把代码需要的字段自行转换为数字。
soap:Envelope这类命名空间前缀会怎样处理?
前缀会保留在键名中,所以 envelope 会显示为 soap:Envelope,命名空间声明则显示为 @xmlns:soap 键。这样可以区分来自不同词汇表的元素;如果你只使用其中一种,可以在代码中去掉前缀。
之后能把JSON再转换回XML吗?
可以,使用 JSON 转 XML。按照同样的 @ 和 #text 约定,属性会还原为属性。注释和原有的缩进无法还原,因为 JSON 中从未保存过它们。
- JSON转XML转换器在线将JSON转换为XML:键名变为元素,数组变为重复元素,全部包在您命名的根标签内。输出带缩进格式,无需注册账号。
- XML转CSV转换器在线将XML数据源、发票和系统导出文件转换为CSV。重复记录变成行,子标签变成列。最多20个文件,每个95 MB。
- XML转Excel转换器把XML发票、银行对账单、商品数据源和系统导出文件转为Excel XLSX表格。无需XML映射或“开发工具”选项卡,Mac用户也能用。
- YAML转JSON转换器将 .yaml 和 .yml 文件转换为JSON,供只解析JSON的API、校验器和工具使用。默认格式化缩进输出,每批最多20个文件,30分钟后自动删除。
- HTML转JSON在线转换将HTML表格转换为JSON:表头单元格作为键名,每一行表格变成一个对象。上传保存的 .html 或 .htm 网页即可,无需编写爬虫代码。
- JSON转YAML转换器在线将JSON转换为YAML,适用于Kubernetes、GitHub Actions、Compose和Ansible配置。缩进规范、引号安全,每批20个文件,无需注册。