JSON 转 XML 转换器
在浏览器中把 JSON 转成美化的 XML,再把 XML 转回 JSON。数组变成重复元素,整份文档都留在你的设备上。
JSON 转 XML 转换器完全在你的浏览器中运行。你粘贴的 JSON 和 XML 在你的设备上完成转换,绝不会离开它,也不会上传到 ArrayKit。
打开 XML 格式化工具
关于 JSON 转 XML 转换器
JSON 转 XML 转换器把一份 JSON 文档转成干净、带缩进的 XML,并把 XML 直接解析回 JSON。可挑选任意根元素名,数组会折叠成共享父级键作为标签的重复子元素。以 @ 为前缀的对象键会变成元素属性,而 #text 键提供内联文本,因此你不用离开 JSON 就能建模属性丰富的 XML。切换方向可粘贴 XML 得到美化后的 JSON,其中重复的同级标签会折叠成数组,属性以 @ 前缀键呈现。当你把 JSON API 接入 SOAP 或遗留 XML 端点、构建 RSS 或站点地图负载,或检查配置文件时,它都很有用。一切都在你的设备上运行——你粘贴的数据绝不离开你的浏览器。
功能特性
- 双向转换:JSON 转美化 XML,XML 再转回 JSON
- JSON 转 XML 方向的根元素名可配置
- 数组变成共享父级键作为标签的重复元素
- 用 @ 前缀键输出属性,用 #text 键输出内联文本
- XML 属性和重复的同级元素往返回 JSON 数组
- 数字、布尔值和 null 会被转换,使标量在往返中得以保留
- 当你粘贴的 JSON 或 XML 格式错误时给出清晰的错误提示
- 完全在你的浏览器中运行,不上传任何内容
如何使用 JSON 转 XML 转换器
- 保持选中「JSON → XML」标签页并粘贴或载入 JSON
- 设置一个根元素名,或保留为 root
- 复制生成的 XML,或将其下载为 .xml 文件
- 切换到「XML → JSON」并粘贴 XML 以获得美化后的 JSON
示例
输入
{ "user": { "@id": 1, "name": "Ada" } }
输出
<root>
<user id="1">
<name>Ada</name>
</user>
</root>
@id 键变成一个属性;name 变成一个子元素。
常见错误与故障排除
- XML 输出把所有内容都包在了意料之外的 <root> 元素里。 — 那是包裹元素。在「根元素」字段里输入一个不同的名字来重命名它,例如 response 或 feed。
- 像 "first name" 这样的 JSON 键产生了奇怪的标签名。 — XML 元素名不能包含空格或以数字开头,因此无效字符会被替换为下划线。如需精确的标签,请把该键重命名为合法的标识符。
- 转成 JSON 后 XML 属性不见了。 — 属性都被保留,只是放在 @ 前缀的键下,比如 @id。请在元素的子键旁边查找这些 @ 前缀的条目。
- 解析失败,提示标签不匹配或未闭合。 — XML 必须恰好有一个根元素,且每个标签都要闭合。检查是否缺少 </tag>、闭合标签是否有拼写错误,或根元素之后是否有多余内容。
常见问题
- 这个转换器如何把 JSON 数组转成 XML?
- 每个数组项都会作为它自己的元素输出,并复用数组的键作为标签名。因此 { "item": [1, 2] } 变成 <item>1</item><item>2</item>,而不是一个包含列表的单一元素。
- 我可以从 JSON 添加 XML 属性吗?
- 可以。任何以 @ 为前缀的对象键都会被写成所在元素上的属性,而 #text 键设置该元素的内联文本。因此 { "a": { "@href": "/x", "#text": "link" } } 变成 <a href="/x">link</a>。
- 我如何更改外层的根元素名?
- 在「JSON → XML」方向有一个「根元素」字段。输入你想要的名字,比如 response 或 catalog,整份文档就会被包裹在那个标签里,而不是默认的 root。
- 把 XML 转回 JSON 时属性会怎样处理?
- 属性会被读入 @ 前缀的键,重复的同级元素会折叠成以共享标签名为键的数组,因此结构在 XML 和 JSON 之间可以干净地往返。
- 解析 XML 时数字和布尔值会被保留吗?
- 看起来像数字、true、false 或 null 的文本会被转换为对应的 JSON 类型。带前导零的值,比如 01234 邮编,会保留为字符串,以免标识符被弄乱。
- 我的 JSON 或 XML 会被发送到服务器吗?
- 不会。JSON 转 XML 转换器完全在你的浏览器中运行。你粘贴的 JSON 和 XML 都留在你的设备上,绝不会上传到 ArrayKit。
相关工具
全部 ArrayKit 工具