DevToolPal
简

XML 转 JSON

在浏览器中把 XML 转成 JSON,保留属性、文本和重复元素,出错时指出具体位置。

本地处理,不上传

选项

输入

0 字符 · 0 B

输出

0 字符 · 0 B

功能简介

本工具把 XML 文档转换成 JSON:元素变成对象的键,属性变成带前缀的键,元素内的文本变成值,重复的同级元素变成数组。转换前会先校验 XML,如果有标签没闭合或属性格式不对,会给出具体的行号和列号。

使用方法

  1. 在「输入」框粘贴 XML,上传或拖入 .xml 文件,或点「示例」。
  2. 右侧会实时显示 JSON。
  3. 按需调整选项:
    • 缩进:2 或 4 个空格、Tab,或压缩输出。
    • 属性前缀:标记属性的前缀,默认 @;留空则忽略属性。
    • 转换数字和布尔值:把 42、true 这样的文本转成真正的 JSON 数字和布尔值。
    • 子元素始终用数组:每个子元素都包成数组,结构更稳定。
  4. 复制结果,或下载为 .json 文件。

示例

<book id="bk101">
  <title lang="en">XML Developer's Guide</title>
  <tag>xml</tag>
  <tag>programming</tag>
</book>

转换为

{
  "book": {
    "title": { "#text": "XML Developer's Guide", "@lang": "en" },
    "tag": ["xml", "programming"],
    "@id": "bk101"
  }
}

说明

XML 声明(<?xml ...?>)和处理指令不会出现在 JSON 中,注释会被忽略,文本两端的空白会被去掉。

常见问题

› XML 属性在 JSON 里怎么表示?

用带属性前缀的键表示,默认前缀是「@」。比如 <price currency="USD">44.95</price> 会变成 { "@currency": "USD", "#text": "44.95" }。把前缀清空就会完全忽略属性。

› 为什么同一个元素有时是数组、有时是对象?

重复出现的元素会变成数组,只出现一次的保持普通值。如果代码需要固定的结构,打开「子元素始终用数组」。

› 数字会被转换吗?

默认不会,因为邮编、带前导零的编号等会被改变。打开「转换数字和布尔值」后,"42" 会变成 42,"true" 会变成 true。

› XML 会上传吗?

不会,解析在浏览器中完成。