ZH
我的工具

XML 转 JSON

把 XML 转成 JSON,可选择属性和文本的写法、重复元素转数组、数字类型转换和去除命名空间。错误会标出行号。

不勾选时只有重复的元素会变成数组,因此元素只出现一次时结构可能会变化。
像 44.95 这样的文本会变成数字;以 0 开头的值(01234)保持为文本。
`soap:Body` 会变成 `Body`,`xmlns` 声明会被去掉。
JSON

格式正确的 XML · 11 个元素 · 5 个属性 · 根元素 <catalog>

重复的元素会变成数组,只出现一次的元素则保持为单个值。若要保持结构稳定,请勾选“子元素始终使用数组”。

我的工具 →
广告

XML 和 JSON 描述的是同一类树形结构,但 XML 有 JSON 没有的属性、混合文本、注释和命名空间,所以每个转换器都要选定一套约定。本转换器可以让你选择属性和文本的写法、重复元素是否转为数组,以及 "44.95" 和 "true" 是否转成数字和布尔值。它会先检查 XML 是否格式正确,出错时会给出行号和列号。

使用方法

  1. 粘贴 XML(RSS 订阅源、SOAP 响应、配置文件、SVG 等)。
  2. 选择属性的表示方式:@id、-id、_id、_attributes 对象,或完全忽略。
  3. 如果你的代码期望每次都是相同的结构,请勾选“子元素始终使用数组”。
  4. 按需开启数字/布尔值转换或去除命名空间,然后复制 JSON。

计算公式

元素 → 键 · 属性 → “@名称” · 文本 → 值或 “#text” · 重复元素 → 数组

只含文本的元素会变成字符串;带属性或子元素的元素会变成对象,其文本放在文本键之下。实体和字符引用会被解码,CDATA 保留为文本,属性值中的换行按 XML 规范变成空格。处理指令和 DOCTYPE 不会包含在内。

示例

在示例 catalog 中,两个 <book> 元素会变成 book 下的数组。第一个是 {"@id": "bk101", "@lang": "en", "author": "Gambardella, Matthew", "title": "XML Developer's Guide", "price": {"@currency": "USD", "#text": "44.95"}, "available": "true"}——&apos; 被解码为撇号;开启数字转换后,价格文本变成 44.95,available 变成 true。

常见问题

为什么同一个元素有时是数组,有时不是?

默认只有重复出现的元素才会变成数组。如果某个订阅源有时只有一项、有时有多项,请勾选“子元素始终使用数组”,这样你的代码每次拿到的都是列表。

转换可以还原吗?

无法完全还原。注释、处理指令以及混合文本与元素的顺序都会丢失,任何 XML 转 JSON 的约定都是如此。

为什么 &nbsp; 会报错?

XML 只预定义了 &amp; &lt; &gt; &quot; &apos;。&nbsp; 这样的 HTML 名称必须在 DOCTYPE 中声明,或写成数字形式,如 &#160;。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). XML 转 JSON. https://kakao.mobile/zh/tools/xml-to-json-converter/

MLA

“XML 转 JSON.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/xml-to-json-converter/.

广告