XML 转 JSON 在线转换

把 XML 粘进下面的框,需要的话在表格里改一改,然后拿到 JSON。转换在你的浏览器里完成,文件不会上传,没有大小限制,也不用注册。

输入

The only part of this site that uses a server. The address is sent to it so the page can be fetched, because a browser is not allowed to fetch someone else's page itself. Your own files are never involved.

这里不上传任何东西,解析在本页完成。
编辑
在上面粘贴或上传内容,表格会显示在这里。
输出DataMarkupDocumentsCodeSchemasImages

有表格可以转换时,结果会显示在这里。

XML 是什么

XML 用嵌套的标签和属性来标记数据。写法啰嗦,对格式规范要求严格,还可以配一份 schema 来规定文档的结构。

企业系统对接、政府开放数据、RSS、SOAP 接口,以及一些较老的文档格式。

JSON 是什么

JSON 是描述嵌套数据的文本格式:带键名的对象、数组、字符串、数字、布尔值和 null。它没有日期类型,也没有注释语法。

所有 Web API、大部分配置文件,以及任何跟 JavaScript 打交道的东西。

XML 转成 JSON 时会发生什么变化

第一个重复出现的元素被当作数据行。属性会跟子元素一起读进来,并加前缀以免和同名标签冲突。嵌套一层会变成带点的列名,更深的结构以文本保留。

结构由你选。对象数组是默认值,也是大多数代码期望的形式。二维数组体积更小。每列一个数组适合图表库。以第一列为键的对象适合做查表。

示例

三行数据,其中有以零开头的编号、含逗号的值、含引号的值,以及一个空单元格。格式之间的差异主要就出现在这四个地方。

XML 输入
<?xml version="1.0" encoding="UTF-8"?>
<staff>
  <person id="007">
    <name>Halima Yusuf</name>
    <role>Analyst, data</role>
    <started>2024-03-15</started>
    <hours>38.5</hours>
  </person>
  <person id="012">
    <name>Jonah "Jo" Pryce</name>
    <role>Engineer</role>
    <started>2025-11-02</started>
    <hours></hours>
  </person>
  <person id="104">
    <name>Wei Chen</name>
    <role>Manager</role>
    <started>2023-06-30</started>
    <hours>40</hours>
  </person>
</staff>
JSON 输出
{
  "staff": [
    {
      "id": "007",
      "name": "Halima Yusuf",
      "role": "Analyst, data",
      "started": "2024-03-15",
      "hours": "38.5"
    },
    {
      "id": "012",
      "name": "Jonah \"Jo\" Pryce",
      "role": "Engineer",
      "started": "2025-11-02",
      "hours": ""
    },
    {
      "id": "104",
      "name": "Wei Chen",
      "role": "Manager",
      "started": "2023-06-30",
      "hours": "40"
    }
  ]
}

常见问题

怎么把 XML 转成 JSON?

把 XML 粘进上面的框,或者把文件拖进去。在表格里核对一下,然后从输出面板复制或下载 JSON。一步就够了,数据始终不离开你的浏览器。

为什么我的编号前面的零不见了?

数字识别把文本 007 变成了数字 7。正因为如此,这里默认不开启数字识别;即使开启,以零开头后面还跟数字的值也会保持为文本。

文件大小有限制吗?

没有。处理是在你自己的机器上完成的,所以限制来自你的内存而不是上传额度。几万行的文件一两秒就转完了。

我的数据会被上传吗?

不会。解析和生成都是本页的 JavaScript 做的。你可以一边转换一边看浏览器的网络面板,会看到什么都没有发出去。

相关转换

其他语言: English