浏览器本地处理

JSON / XML 互转

XML 属性映射为 @attributes,元素文本映射为 #text,同名子元素合并为数组。浏览器解析 XML 前会拒绝 DTD 和实体声明。

浏览器本地处理
0 / 1,000,000
转换结果

工具指南

什么是JSON / XML 互转?

JSON 与 XML 互转采用公开、可预测的映射规则:属性放入 @attributes,元素文本使用 #text,同名子元素转换为数组。工具会拒绝 DTD 和实体声明,降低外部实体风险;同时明确说明注释、混合内容和命名空间等无法完全无损往返的部分。常见使用场景包括:为旧系统接口生成简单 XML 请求示例。;把结构清晰的 XML 转成便于前端处理的 JSON。;理解属性、文本节点和重复元素在两种格式中的对应关系。页面同时列出输入边界、输出规则和限制,便于在复制结果或投入实际流程前核对格式、语义与安全注意事项。

适用场景

  • 为旧系统接口生成简单 XML 请求示例。
  • 把结构清晰的 XML 转成便于前端处理的 JSON。
  • 理解属性、文本节点和重复元素在两种格式中的对应关系。

使用方法

  1. 粘贴只有一个根键的 JSON,或粘贴 XML 文档。
  2. 选择转换方向。
  3. 检查映射警告后复制或交换结果。
  4. 先使用页面提供的复杂示例验证当前选项和运行方向,再替换为自己的数据。
  5. 检查输出区、状态提示和限制说明,确认结果符合预期后再复制、下载或继续处理。

可运行示例

工作区中的“示例 1”和“示例 2”按钮会载入对应内容。两个示例覆盖不同结构、方向或边界,可以直接运行并观察输出与状态提示。

示例 1

{"catalog":{"@attributes":{"lang":"zh-CN"},"tool":[{"@attributes":{"id":"21"},"#text":"驼峰转换"},{"@attributes":{"id":"22"},"#text":"大小写转换"}]}}

示例 2

<release version="1.5"><tools><tool id="19">文本去重</tool><tool id="20">正则测试</tool></tools><ready>true</ready></release>

输入规则

  • JSON 转 XML 时必须只有一个根键。
  • XML 必须格式完整,且不能包含 DTD 或 ENTITY 声明。
  • 复杂混合内容、处理指令和命名空间需要在转换后人工复核。
  • 文本输入在运行前按字符计数,当前页面上限为 1,000,000;文件类功能另按页面显示的文件上限执行。
  • JSON 转 XML 必须只有一个根对象键。

输出规则

  • XML 属性映射到 @attributes,文本映射到 #text。
  • 同名兄弟元素会合并为数组。
  • 转换结果会格式化展示,但不保证复杂 XML 完全无损往返。
  • 输出只反映当前输入、方向和选项;切换模式或修改输入后应重新运行,不应把旧结果当成新结果。
  • JSON 转 XML 不支持同时含 #text 和子元素的混合内容。

限制与注意事项

  • JSON 转 XML 必须只有一个根对象键。
  • JSON 转 XML 不支持同时含 #text 和子元素的混合内容。
  • 注释、处理指令、前缀和部分命名空间语义不保留。

数据处理说明

XML 解析和格式转换都在浏览器内进行,不请求外部实体或远程资源。关闭或刷新页面后,本工具不会保留本次数据。

FAQ

XML 属性如何表示?

属性放在 @attributes 对象中,元素文本使用 #text。

允许外部实体吗?

不允许。工具显式拒绝 DTD 和 ENTITY 声明,也不会发起网络请求。

所有 XML 都能无损往返吗?

不能。注释、处理指令、混合内容顺序、前缀和部分命名空间信息可能丢失。

XML 属性和文本如何映射?

属性放在 @attributes 对象中,元素文本放在 #text,同名兄弟元素合并为数组。

为什么不支持 DTD 和 ENTITY?

外部实体可能读取本地或网络资源并造成资源耗尽。本地工具直接拒绝相关声明以降低风险。

转换后再转回来能完全一致吗?

简单结构通常可预测,但注释、命名空间细节、处理指令和复杂混合内容不能保证无损往返。

更新日期: 2026-07-31