XML 转 JSON 工具
粘贴 XML,即可得到保留元素、属性和文本的 JSON,方便在 JavaScript 或 API 中使用。
JSON
将 XML 文档转换为 JSON
XML 和 JSON 的数据模型不同:XML 有属性、文本节点和重复元素,而 JSON 只有对象、数组和值。本工具采用紧凑且无损的映射方式:每个元素成为一个键,属性收集在 _attributes 下,文本内容存放在 _text 下,出现多次的元素会成为数组。XML 声明保留在 _declaration 下。由于不会丢弃任何信息,你可以编辑 JSON 后再用 JSON 转 XML 工具将其转回 XML。
使用方法
- 粘贴 XML,例如 SOAP 响应、RSS 订阅源或 Maven pom.xml。
- 在输出编辑器中查看 JSON;如果解析出错,会显示 XML 格式错误所在的行。
- 复制 JSON,或点击“交换”将其转回 XML。
常见问题
- 为什么 XML 中的数字被转换成了字符串?
- XML 没有数据类型:元素内的所有内容都是文本。转换器将值作为字符串保存在 _text 下,避免错误推断类型,例如以 0 开头的邮政编码。
- 为什么同一个元素有时是对象,有时是数组?
- 单个元素会成为对象,而同名的重复兄弟元素会成为数组。如果你的代码需要同时处理这两种情况,请用 Array.isArray 判断,或将该值统一规范为数组。
- _attributes 和 _text 是什么意思?
- _attributes 以键值对形式保存元素的属性,_text 保存元素的文本内容。使用固定的名称可以避免属性与子元素发生冲突。
示例:XML 转 JSON
XML 输入
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<book id="bk101">
<title>XML Developer's Guide</title>
<price>44.95</price>
</book>
<book id="bk102">
<title>Midnight Rain</title>
<price>5.95</price>
</book>
</catalog>JSON 输出
{
"_declaration": {
"_attributes": {
"version": "1.0",
"encoding": "UTF-8"
}
},
"catalog": {
"book": [
{
"_attributes": {
"id": "bk101"
},
"title": {
"_text": "XML Developer's Guide"
},
"price": {
"_text": "44.95"
}
},
{
"_attributes": {
"id": "bk102"
},
"title": {
"_text": "Midnight Rain"
},
"price": {
"_text": "5.95"
}
}
]
}
}