功能简介
本工具把 XML 文档转换成 JSON:元素变成对象的键,属性变成带前缀的键,元素内的文本变成值,重复的同级元素变成数组。转换前会先校验 XML,如果有标签没闭合或属性格式不对,会给出具体的行号和列号。
使用方法
- 在「输入」框粘贴 XML,上传或拖入
.xml文件,或点「示例」。 - 右侧会实时显示 JSON。
- 按需调整选项:
- 缩进:2 或 4 个空格、Tab,或压缩输出。
- 属性前缀:标记属性的前缀,默认
@;留空则忽略属性。 - 转换数字和布尔值:把
42、true这样的文本转成真正的 JSON 数字和布尔值。 - 子元素始终用数组:每个子元素都包成数组,结构更稳定。
- 复制结果,或下载为
.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 会上传吗?
不会,解析在浏览器中完成。