ZH
我的工具

JSON 转 XML 工具

将 JSON 转换为格式正确的 XML:对象变成元素,数组变成重复元素,以 @ 开头的键变成属性。可自定义根元素名称和缩进。

留空时,若顶层只有一个键,就以该键(此处为 "library")作为根元素。
当数组位于顶层,或直接位于另一个数组内时使用。
XML
元素数
11
已重命名的键
0
我的工具 →
广告

许多老系统——SOAP 服务、RSS 和站点地图工具、办公文档格式、企业集成——仍然使用 XML,而现代 API 返回的是 JSON。这个转换器把 JSON 转为格式正确的 XML:每个对象的键变成一个元素,数组的每一项变成以数组名命名的重复元素,特殊字符会被转义,因此输出始终可以被解析。以 @ 开头的键可按广泛使用的 Goessner 约定转为属性。

使用方法

  1. 粘贴 JSON。
  2. 如果 JSON 顶层只有一个键,根元素名称可以留空;想用一个元素包住全部内容,就输入一个名称。
  3. 选择缩进方式,选“无”可得到压缩成单行的 XML。
  4. 如果 JSON 来自 XML 转 JSON 的工具,请保持 @ 属性选项开启,然后复制结果。

计算公式

{"k": value} → <k>value</k>; {"k": [a, b]} → <k>a</k><k>b</k>; {"@id": "7"} → id="7"; null → <k/>.

文本会被转义(& → &amp;,< → &lt;,> → &gt;,属性中的 " → &quot;)。不是合法 XML 名称的键,例如 "first name" 或 "2nd",会被补上下划线("first_name"、"_2nd"),并列在结果下方。冒号和 xmlns 会被重命名;此映射不会创建 XML 命名空间。重命名后键发生冲突、以及不成对的代理项,都会被拒绝。

示例

示例中的 library 顶层只有一个键,所以 library 成为根元素。它的 "@name" 变成属性 name="City Branch",含两项的 "book" 数组变成两个带 id 属性的 <book> 元素,每个元素都包含 <title>、<author>、<year> 和 <available>。一共有 11 个元素:1 个 library、2 个 book,每个 book 有 4 个子元素。

常见问题

JSON 数组是怎么表示的?

XML 没有数组类型,所以每一项都写成一个单独的元素,元素名就是数组的键名。直接位于另一个数组内或位于顶层的数组,使用你指定的项名称(默认为 <item>)。

可以生成属性而不是子元素吗?

可以。在 JSON 中给键加上 @ 前缀,例如 {"@id": "7"}。"#text" 键用来在属性旁设置元素自身的文本内容。

转换回去能得到相同的 JSON 吗?

不一定。XML 把一切都存为文本,所以 1965 和 "1965" 看起来一样,只有一项的数组也无法与单个子元素区分。如果需要精确地往返转换,请另外保留一份模式(schema)。

输出是有效的 XML 吗?

转换器会生成带有一个根元素、文本已转义的 XML。XML 1.0 禁止的控制字符会被移除并给出提示,名称冲突会被拒绝,属性值中的空白用字符引用保留。XSD 校验是另一回事。

资料来源

最后更新:

引用此工具
APA

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

MLA

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

广告