XML 与 JSON 互转
在浏览器中双向转换 XML 与 JSON,保留属性、重复元素和文本内容。
XML 输入
JSON 输出
输入与输出示例
<user id="001"><name>小明</name><tag>XML</tag><tag>JSON</tag></user>{"user":{"@id":"001","name":"小明","tag":["XML","JSON"]}}{"message":{"@lang":"zh","#text":"你好 & 世界"}}<message lang="zh">你好 & 世界</message><p>你好<b>世界</b>!</p>{"p":{"#content":["你好",{"b":"世界"},"!"]}}如何使用
- 选择 XML 转 JSON 或 JSON 转 XML,粘贴内容或载入示例。
- 选择输出缩进;JSON 没有唯一根字段时,开启“添加根元素”并填写名称。
- 点击转换,或按 Ctrl / ⌘ + Enter;检查结果后复制、下载或大屏查看。
能力与限制
- 浏览器本地处理
- 输入最多 1 MiB,输出最多 4 MiB,最多 64 层、50,000 个节点;任务可取消,10 秒超时后停止。
- XML 属性使用 @ 前缀,同名连续元素转为数组,带属性的文本使用 #text;混合文本或交错元素使用 #content 数组保存顺序。
- XML 文本和属性保持字符串,不自动推断数字或布尔值;JSON 数字保留原始词法,null 转为空元素。往返转换不能保留 JSON 的原始类型。
- CDATA 转为普通文本,注释与处理指令不保留;元素间纯排版空白通常忽略,xml:space="preserve" 下保留。
- 仅处理 XML 1.0,不支持 DTD、自定义实体、Schema 校验;不访问外部资源。命名空间声明作为 @xmlns 属性保留。
- JSON 默认必须有一个非数组根字段;添加根元素后可处理普通对象、标量和一维数组,顶层数组项使用 item。空数组和嵌套数组会提示错误。
- XML 标签和属性名须以字母或下划线开头,后续可含数字、组合字符、点或连字符,并可使用一个命名空间前缀。输入、设置和结果仅保留在当前页面内存。
常见问题
- 为什么数字和 true 变成了字符串?
- XML 不自带 JSON 类型信息。保留字符串可避免编号 001、大整数和金额小数被错误改写。
- 属性、文本和数组如何写回 XML?
- 例如 {"item":{"@id":"1","#text":"内容"}} 会生成带 id 属性的 item;对象字段中的数组生成多个同名元素。#content 用于按顺序混排文本和单元素对象。
- 切换方向会清空内容吗?
- 不会。两个模式分别保留输入、选项、结果、错误和任务。清空只影响当前模式,载入示例与清空都可撤销恢复输入。
- 内容会发送到服务器吗?
- 不会。转换在浏览器本地 Worker 中运行,不上传、不记录,也不保存输入历史。
相关指南
XML 与 JSON:属性、重复节点和混合文本的映射 ↗相关工具
更新于 2026-10-17 · 项目与反馈说明