格式转换:XML To JSON
使用 xml-js 的 compact 模式将 XML 转换为 JSON:属性放在 _attributes 下,文本放在 _text 下,重复的同级元素变为数组。所有值都保持为字符串。
在编写解析代码前,以 JSON 形式查看 SOAP、RSS 或旧版 XML API 的响应。
适用场景
- 在编写解析代码前,以 JSON 形式查看 SOAP、RSS 或旧版 XML API 的响应。
- 从 XML 导出文件中提取属性值和文本,交给基于 JSON 的工具。
使用方法
- 将 XML 粘贴到左侧编辑器,或加载 .xml 文件。
- 在 JSON 中,从 _attributes 读取属性,从 _text 读取元素文本,从数组读取重复元素。
- 复制 JSON,把需要的字段映射到你自己的结构中。
XML 输入
<order id="1042"> <customer>Ada Lovelace</customer> <item sku="A-1">Keyboard</item> <item sku="B-7">Mouse</item> </order>
JSON
{
"order": {
"_attributes": {
"id": "1042"
},
"customer": {
"_text": "Ada Lovelace"
},
"item": [
{
"_attributes": {
"sku": "A-1"
},
"_text": "Keyboard"
},
{
"_attributes": {
"sku": "B-7"
},
"_text": "Mouse"
}
]
}
}功能与限制
转换在浏览器中进行。没有设置项,compact 格式是固定的。
只出现一次的元素是对象,出现两次就变成数组,因此 JSON 结构可能随数据变化。代码中需要同时处理两种情况。
XML 声明、注释和 CDATA 会保留为 _declaration、_comment 和 _cdata。不进行 schema(XSD)或 DTD 校验。
混合内容(文本与标签交错)会丢失原有顺序。
FAQ
数字和布尔值会转换为 JSON 类型吗?
不会。属性值和文本都保持为字符串,例如 "1042"。需要时请在自己的代码中转换类型。
XML 格式有误会怎样?
页面会显示 "Invalid XML" 错误而不是 JSON,例如 "unclosed tag <order>" 或 "Unexpected close tag (line 3, column 8)"。请闭合每个元素、给属性值加引号,并把 & 转义为 &。
能得到不含 _text 和 _attributes 键的 JSON 吗?
本页不行。compact 格式保留这些键,以免属性和文本混淆。复制后请在代码中调整结构。