开发者工具 / 01
XML转JSON转换器
将XML文档转换为易读的JSON,并合理处理属性和重复元素。
XML转JSON转换器: TOEA读取文档中的元素、属性、文本和CDATA,然后将它们整理为JSON:属性前加@,独立文本变为#text,重复的同级名称变为数组。 完全在浏览器中本地运行,文件不会上传到服务器。
- 类别
- 开发者工具
- 使用次数
- 在浏览器中
- 费用
- 免费·无需注册
- 可用性
- 可直接使用
完全在浏览器中运行
最大5 MB·不会上传
所有内容都会变成文本
XML没有数据类型,因此<count>42</count>会变成"42",<active>true</active>会变成"true"。请在读取JSON的代码中转换数字和布尔值,因为在那里你知道各字段的含义。属性也一样:即使@id看起来是数字,它仍然保存为字符串。
读取结果的代码还必须处理只在部分情况下重复出现的元素。只出现一次的<item>会是对象,出现两次则会是数组,因此循环前请使用Array.isArray(x) ? x : [x]进行规范化。
不适合转换的文档
此转换器适合处理数据,例如配置、API响应、信息源和导出文件,但不适合处理散文。在<p>Read <b>this</b> first</p>中,分散的文本会合并到一个#text值中,而粗体文字会成为单独的键,因此会丢失阅读顺序。XHTML、DocBook及类似的文档格式更适合使用XML库处理。若要在转换前检查文档结构,请使用XML格式化工具进行缩进。
使用方法
- 粘贴XML或选择文件。
- 选择缩进宽度。
- 复制或下载JSON。
隐私与限制
文本会在浏览器中转换,且不会上传;当文件是配置文件或导出数据、你不希望交给陌生人时,这一点很重要。命名空间会在元素名称中按原样保留,而不会解析。
相关工具
常见问题
为什么属性以@开头?
XML会将属性与子元素分开,而JSON没有这种区分。@前缀可以将它们分开,这样无需猜测即可还原转换。
为什么一个元素变成了数组?
重复出现的同级名称总会变成数组,因为这就是该结构表达的含义。只出现一次的名称会保留为普通值。
#text有什么作用?
同时包含文本和子元素的元素需要一个位置来存放独立文本,而#text就是这个位置。
不支持哪些内容?
不支持DTD实体定义、命名空间解析,以及声明之外的处理指令。配置文件和API负载不会使用这些内容。
免费工具·使用在浏览器中次·无需账户