如何将 JSON 转换为 XML
- 粘贴 JSON 或打开
.json文件。输入的同时,旁边就会显示 XML。 - 设置根元素名称(留空则使用唯一的顶层键)、属性前缀和缩进方式。
- 复制 XML,或下载为
.xml文件。
JSON 与 XML 的映射规则
| JSON | XML |
|---|---|
{"name": "Ada"} | <name>Ada</name> |
{"@id": "7"} | 父元素上的属性 id="7" |
{"#text": "Hello"} | 父元素的文本内容 |
{"tag": ["a", "b"]} | <tag>a</tag><tag>b</tag> |
{"note": null} | <note/> |
{"2nd key": 1} | <_2nd_key>1</_2nd_key>,无效名称会被自动修正 |
顶层数组 [1, 2] | <root><item>1</item><item>2</item></root> |
文本中的 &、<、> | &、<、> |
JSON 与 XML 的区别
JSON 有数组、数字、布尔值和 null,而 XML 只有元素、属性和文本,因此类型无法保留:42 和 "42" 都会变成文本 42。反过来,XML 拥有 JSON 所没有的属性、命名空间和混合内容。如果你以后打算把 XML 转回 JSON,请保留这里使用的通用约定:用 @ 表示属性,用 #text 表示文本内容,大多数转换器都能识别。
常见问题
JSON 数组如何转换为 XML?
每一项都会成为一个以该数组的键命名的元素,因此 {"book": [ … ]} 会变成多个 <book> 元素。顶层数组的各项会成为根元素内的 <item> 元素。
如何从 JSON 生成 XML 属性?
在键名前加上 @ 前缀:{"user": {"@id": 7, "name": "Ada"}} 会变成 <user id="7"><name>Ada</name></user>。你可以在选项中更改前缀。
不是合法 XML 名称的键会如何处理?
XML 名称中不能包含的字符(如空格)会被替换为下划线,以数字或“xml”开头的名称会在前面加上下划线:"2nd key" 会变成 <_2nd_key>。
生成的 XML 是有效的吗?
是的。特殊字符都会被转义,每个元素名称都合法,文档有且只有一个根元素,顶部还可以选择添加 XML 声明。