JSON转XML转换器
将JSON数据转换为XML。@attributes还原为元素属性,#text还原为文本内容,数组还原为同名的兄弟元素——是XML转JSON工具的逆过程,全部在浏览器中完成。
使用提示
- 在 `@attributes` 键中放入一个对象,该对象的每个属性都会成为转换后元素的属性。
- `#text` 键用于表示与属性或子元素共存的元素的文本内容。不含属性的简单元素直接用字符串作为值即可。
- 给同一个键赋予数组,数组的每个元素都会作为同名的兄弟元素重复输出。
- 值为 `null` 时会生成不含属性、文本、子元素的空自闭合标签(`
`)。 - 本工具假定输入格式为姊妹工具"XML转JSON转换器"的输出格式(以根元素名为键的对象,顶层仅有一个键)。
常见问题
名为 `@attributes` 的键中的对象,其每个属性都会变成转换后XML元素的属性。例如 `{"@attributes": {"category": "fiction"}}` 会转换为 `category="fiction"` 属性。
给同一个键指定数组时,数组的每个元素都会作为同名的兄弟元素多次输出。例如 `"book": [{"title": "A"}, {"title": "B"}]` 会转换为包含两个 `` 标签的XML。
最常见的原因是JSON语法错误(缺少逗号、未加引号等)。另外XML必须只有一个根元素,因此顶层有多个键的JSON,或根为数组的JSON也会导致错误。
可以,本站的"XML转JSON转换器"支持反方向转换。由于两者采用相同的转换规则,双向转换内容都能保持一致。
本工具假定采用"XML转JSON转换器"的规则(`@attributes`、`#text`、数组和null)。不遵循此规则的自由格式JSON(例如充满数字和布尔值的普通API响应)可能无法转换为预期的XML结构。
闲话 ― 将JSON"还原"为XML时需要注意的地方
XML转JSON的过程近似于"信息压缩"。XML可以同时容纳属性、文本、子元素三种信息,而JSON只有简单的键值对应关系,因此转换时必须采用某种规则(本工具采用 `@attributes`/`#text`/数组/null 这四条规则)。只要遵循该规则,将JSON"还原"为XML就是一个机械且唯一确定的过程;但如果强行将不遵循此规则的自由格式JSON转换为XML,就可能分不清哪些应该是属性、哪些应该是元素,导致结果与预期不符。
在实际工作中,有时需要先将旧版XML API的响应转换为JSON以便在JavaScript中处理,处理完后再转换回XML发送给其他系统——例如将SOAP格式API的响应转为JSON处理后,再作为SOAP格式的请求发送回去。在这种往返转换中,保持转换规则的一致性至关重要,如果中途混入采用不同规则的工具,属性与文本之间的对应关系就可能被打乱。
本工具严格要求"顶层只能有一个键",这反映了XML规范本身的要求(文档必须只有一个根元素)。如果需要转换含有多个顶层键的JSON,可以先用一个公共父键(例如 `root`)将其包裹起来再输入本工具,即可输出为具有单一根元素的XML。