在线 XML/JSON 转换器:数据格式互转工具
什么是 XML 和 JSON
XML(eXtensible Markup Language,可扩展标记语言)是一种用于标记数据的标记语言,支持属性和命名空间。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,使用键值对表示数据。
对比示例
XML:
<user id="1">
<name>张三</name>
<email>zhang@example.com</email>
<tags>
<tag>developer</tag>
<tag>admin</tag>
</tags>
</user>
JSON:
{
"user": {
"@id": "1",
"name": "张三",
"email": "zhang@example.com",
"tags": {
"tag": ["developer", "admin"]
}
}
}
XML vs JSON 对比
| 特性 | XML | JSON | |------|-----|------| | 可读性 | 中等 | 高 | | 文件大小 | 大(标签冗余) | 小 | | 数据类型 | ❌ 全为字符串 | ✅ 多种类型 | | 属性支持 | ✅ 原生支持 | ⚠️ 需约定 | | 命名空间 | ✅ 支持 | ❌ 不支持 | | 注释 | ✅ 支持 | ❌ 不支持 | | Schema 验证 | ✅ XSD | ✅ JSON Schema | | Web 标准 | 传统标准 | 现代标准 |
为什么需要 XML/JSON 转换
- Web 服务迁移:SOAP(XML)→ REST(JSON)API 升级
- 配置文件转换:旧系统 XML 配置 → 新系统 JSON 配置
- 数据集成:不同系统使用不同数据格式
- RSS/Atom 解析:RSS Feed(XML)→ JSON 处理
- Office 文档:.docx/.xlsx 本质是 XML,需要转换为 JSON
- 遗留系统对接:新系统对接使用 XML 的旧系统
常见转换挑战
| 挑战 | 说明 | 解决方案 |
|------|------|---------|
| 属性 vs 子元素 | XML 属性在 JSON 中没有标准表示 | 使用 @attr 前缀 |
| 重复元素 | XML 可重复元素名 | JSON 转为数组 |
| 文本内容 | XML 混合内容 | 使用 #text 键 |
| 命名空间 | XML 命名空间前缀 | JSON 中使用完整 URI |
| 空元素 | <tag/> | JSON 中使用 null 或空字符串 |
如何使用在线工具
使用 ToolVault 工具匣 的 XML/JSON 转换器:
- 粘贴 XML 或 JSON 数据
- 工具自动检测格式并转换
- 支持属性、命名空间等复杂结构
- 实时预览转换结果
- 处理大文件时支持流式转换
代码中的转换
JavaScript
const xml2js = require('xml2js');
const { XMLBuilder, XMLParser } = require('fast-xml-parser');
// XML → JSON
const parser = new XMLBuilder({ ignoreAttributes: false, attributeNamePrefix: '@_' });
const xml = '<user id="1"><name>张三</name></user>';
const builder = new XMLBuilder();
const json = parser.parse(xml);
// JSON → XML
const xmlBuilder = new xml2js.Builder();
const xmlStr = xmlBuilder.buildObject({ user: { name: '张三' } });
Python
import xmltodict
import json
# XML → JSON
xml_str = '<user id="1"><name>张三</name></user>'
data = xmltodict.parse(xml_str)
json_str = json.dumps(data, ensure_ascii=False, indent=2)
# JSON → XML
data = {"user": {"name": "张三"}}
xml_str = xmltodict.unparse(data, pretty=True)
FAQ
XML 属性怎么转换为 JSON?
没有标准转换方式。常见约定:使用 @ 前缀表示属性(如 @id),使用 #text 表示文本内容。不同工具的约定可能不同。
JSON 转 XML 会丢失信息吗?
可能。JSON 的某些特性 XML 不支持:数组(需要约定元素名)、无类型(XML 全为字符串)。转换前需要了解目标格式的限制。
什么时候用 XML,什么时候用 JSON?
使用 XML:需要命名空间、Schema 严格验证、文档混合内容(如 XHTML)。使用 JSON:Web API、配置文件、前后端数据交换。现代项目优先选择 JSON。
本文由 ToolVault 工具匣 提供。更多开发者工具请访问 首页。
相关工具
相关文章
HTML 表格转 JSON 怎么保留行列结构?
把网页里的 HTML 表格转成 JSON,怎么保留表头、处理合并单元格、保持嵌套结构?逐步方法并附本站 HTML 表格转 JSON 工具。
Excel 转 JSON 后日期变成数字 / 中文乱码,怎么办?
把 Excel 转成 JSON 时日期变 44927 这种数字、中文乱码、空单元格丢失怎么办?讲清 Excel 日期序列号与编码坑,并附本站 Excel 转 JSON 工具。
表格数据互转完全指南:Excel、CSV、JSON、Markdown、HTML 一站式转换
Excel、CSV、JSON、Markdown、HTML 五种表格格式互转全解析:各格式特点、转换场景、在线工具实操与常见陷阱,12 个免费在线转换器一站搞定。