用于JSON与XML数据结构相互转换的工具,满足开发、测试和数据处理需求。
工具用的顺手吗?
你的反馈能帮助我们做得更好
概览
了解工具能解决的问题、计算或处理逻辑,以及数据边界。
把{"root":{"name":"Ada","age":30}}放入JSON输入区,会得到以<root>为根、包含<name>和<age>子元素的XML。转换器默认从JSON转XML,也可点击方向图标切换成XML转JSON;结果会按所选缩进格式排版,并可复制或下载。
JSON用对象、数组和标量表示数据,XML则区分元素、属性、文本、CDATA等节点。二者没有唯一、通用且完全无损的对应规则,所以这里采用紧凑映射:普通键名对应元素名,重复同名元素对应数组,元素文本放入_text,属性集合放入_attributes。理解这两个保留键,是读懂反向结果的关键。
| XML结构 | 转换后的JSON形态 | 说明 |
|---|---|---|
<name>Ada</name> | "name": {"_text": "Ada"} | 文本不是直接标量,而是放在_text中 |
<item id="A1">x</item> | "item": {"_attributes": {"id": "A1"}, "_text": "x"} | 属性与文本分别保留 |
两个同级<item> | "item": [{...}, {...}] | 同名重复节点形成数组 |
JSON转XML时也可主动使用这些保留键。例如{"root":{"item":{"_attributes":{"id":"A1"},"_text":"book"}}}会生成带id="A1"属性且文本为book的<item>元素。
指南
按步骤完成操作,并通过示例核对输入与结果。
顶部左侧标签是输入格式,右侧标签是输出格式。默认JSON→XML;点击中间的交换图标后,已有输出会移到输入区,再按XML→JSON转换。
可选2个空格、4个空格或Tab。该选项只影响输出排版,不会改变节点名称、属性值或数据层级。
输入区支持清空和样例。停止编辑片刻后自动转换;JSON语法错误或XML不良构时,右侧不保留旧结果,并在输出区域显示原因。
先检查根元素、数组、属性和文本节点,再复制结果。下载时文件名为converted.xml或converted.json,内容与右侧输出一致。
先输入以下JSON:
{
"root": {
"person": {
"name": "John Doe",
"age": 30
}
}
}选择2个空格后,输出包含<root><person><name>John Doe</name><age>30</age></person></root>的缩进版XML。再交换方向,XML会转成带_text节点的JSON,age的值变成字符串"30"。这个往返结果说明:结构可保留,但JSON数字类型不会从XML文本中自动恢复。
场景
查看这项工具在不同工作与生活流程中的用法。
一个系统给出JSON、另一个系统需要XML时,可先用小样本确认目标根元素与字段层级。结果适合作为映射草稿,正式接口仍应按双方约定的Schema校验。
把一段良构XML转成JSON后,可快速观察嵌套关系、重复节点和属性位置。对于含命名空间或混合内容的文件,应重点检查保留键是否符合后续程序预期。
团队讨论“数组为何消失”或“数字为何变成字符串”时,用最小片段做往返转换,能明确问题来自数据模型映射,而不是缩进或显示样式。
问答
集中解答高频疑问与容易混淆的问题。
_text?这是该转换器区分元素文本与子元素、属性所采用的映射。它不是XML标签,也不是JSON标准规定的关键字;后续程序若期待普通字符串,需要按业务规则再读取或扁平化_text。
XML元素文本本身不携带JSON数字类型。反向转换只能保留字符内容,因此<age>30</age>对应_text: "30";是否重新转为数字,应由了解字段类型的系统决定。
对象某个键的值是数组时,同一元素名会重复出现。例如item数组会形成多个同级<item>。空数组、异构数组或顶层数组应先做小样本测试,因为目标系统可能要求特定包装根节点。
不会改变映射得到的节点结构,差别只在输出缩进。若XML文本节点本身包含有意义的空白,仍应逐项核对,因为XML空白语义由具体文档约定决定。
须知
使用前了解适用范围、结果限制与必要提醒。
null类型无法仅靠文本可靠推断。推荐
查找相关工具、专题与可用的 API 能力。