XML 转 JSON 工具

您可以粘贴一份 XML 文档,得到相应的 JSON。属性变为以 @ 开头的键,元素的文本变为 #text,重复出现的元素变为数组。您粘贴的内容不会离开您的浏览器。

免费 在浏览器中运行 核对于2026年11月10日星期二

格式正确的 XML 文档。如有问题,会显示它的行和列。

像12.5或 true 这样的文本,只有在被原样写回时才会变为 JSON 值。

缩进

结果

JSON — 复制,或下载为 converted.json。
元素 — 读取了多少个元素,包括根元素。
JSON

此工具在您的浏览器中运行。您输入的内容不会发送给我们。

使用方法

  1. 把 XML 粘贴到 XML 中。系统会先检查它,如有问题,会显示问题所在的行和列。
  2. 保持 把数字、true 和 false 读取为值 处于勾选状态,可使12.5成为数字;取消勾选,则把所有内容保留为文本。
  3. 选择 缩进,或选择 不换行(压缩),以得到最短的 JSON。
  4. 复制 JSON,或下载为 converted.json。

对应规则,逐条说明

根元素成为 JSON 对象中唯一的成员,因此名为 catalog 的根元素会得到一个 catalog 成员。属性变为名称以 @ 开头的成员,例如 @id。元素没有其他内容时,它的文本即为其值;如果它还含有子元素,文本则变为成员 #text,并去掉前后的空白。

子元素变为以其名称为键的成员。同一名称出现多次时,这些成员按文档顺序组成数组。没有属性也没有子元素的元素,若写成自闭合形式(标签末尾有斜线),其值为 null;若写成开始标签加结束标签,其值为空字符串。

  • CDATA 段按原样计为文本,因此其中的 < 字符仍为 <。
  • 注释和处理指令会被省略,因为 JSON 中没有它们的位置。
  • &amp; 和 &#65; 这样的引用会被读取,因此文本中保存的是它们所代表的字符。

有类型的值及其影响

XML 本身没有数字或布尔值:XML 中的12.5只是文本。开启类型选项后,若某段文本经 JSON 的数字、true 或 false 写回后完全一致,它就会被读取为该值。12.50或007这类文本仍为文本,因为数字会把它们写成另一种形式。

只含一项的列表会返回该项本身,而不是数组,因为 XML 无法区分两者。如果 JSON 将由期望数组的程序读取,请记住这一点。

计算示例:默认目录

默认的 XML 是一个含有两本书的目录。第一本书有 id 属性,它的 title、price 和 inStock 元素变为键。第二本书没有 inStock 元素,它的空 price 元素变为 null。

JSON 只有一个成员 catalog,其 book 键是一个含有两个对象的数组。计数显示8个元素:目录、两本书以及它们的子元素。

常见问题

为什么我的数字显示为文本?

JSON 数字写回后无法完全一致的文本会保持为文本:12.50会保留末尾的零,007会保留前导零。关闭类型选项,即可把所有值都保留为文本。

为什么某个元素是对象而不是数组?

只有当同一名称在一个元素的子元素中出现两次或以上时,才会生成数组。单个元素会输出为它的值,这是 XML 的常见结果。

注释和处理指令会怎样?

它们会被省略。JSON 中没有注释的位置,所以转换工具只读取数据。如果注释对您很重要,请保留原始 XML。

为什么转换工具会报告行和列?

XML 必须格式正确,才能被读取。行和列显示文档第一次违反 XML 规则的位置,例如闭合标签与开始标签不匹配。

我的 XML 会被发送到服务器吗?

不会。转换在您的浏览器中进行,您粘贴的内容不会发送到我们的服务器,也不会在那里保存。

资料来源

数据和文字最近核对于2026年11月10日星期二。

我们使用必要的 Cookie 来运行网站。经您同意后,Google 还会使用广告 Cookie 展示个性化广告。如果您拒绝,仍会看到广告,但广告不会个性化。