XML 转 JSON
XML 和 JSON 对数据的建模方式不同:XML 有属性和混合内容,JSON 有对象和数组。要做到无损转换需要一种约定。这个工具提供三种:紧凑(丢弃属性)、Badgerfish(属性放在 @key 下,文本放在 $ 下)和字面式(每个 XML 节点都变成一个保真度完整的 JSON 对象)。选一个与你目标 JSON 消费方相匹配的即可。
如何把 XML 转成 JSON
-
1
粘贴 XML
任意格式良好的 XML。命名空间会被保留。
-
2
选择转换风格
紧凑、Badgerfish 或字面式/无损。
-
3
处理数组
强制某些元素始终为数组(可配置)。
-
4
复制 JSON 输出
美化或压缩,随你选择。
三种风格对比
输入:
<book id="1" lang="en">
<title>1984</title>
<author>Orwell</author>
</book>
紧凑(丢弃属性):
{
"book": {
"title": "1984",
"author": "Orwell"
}
}
Badgerfish(属性放在 @ 下,文本放在 $ 下):
{
"book": {
"@id": "1",
"@lang": "en",
"title": { "$": "1984" },
"author": { "$": "Orwell" }
}
}
字面式 / 类 JsonML(保真度完整):
{
"book": {
"@attributes": { "id": "1", "lang": "en" },
"title": "1984",
"author": "Orwell"
}
}
强制数组
XML 没办法表达「这是只有一个元素的列表」。单元素序列看起来和标量一模一样:
<items>
<item>A</item>
</items>
它可以序列化为 {"item": "A"} 或 {"item": ["A"]}。转换工具让你把某些元素名(按 XPath)标记为始终是数组,这样你的下游 JSON 消费方就能得到一致的类型。
混合内容
混合内容,文本与子元素交错,是任何 XML 转 JSON 都会丢失信息的地方:
<p>Hello <em>world</em>!</p>
大多数风格要么丢掉文本,要么把它折叠掉。字面式风格通过数组保留顺序:
{
"p": {
"@content": ["Hello ", { "em": "world" }, "!"]
}
}
类型推断
默认情况下值都是字符串。打开「解析数字/布尔值」,转换工具就会把 42、3.14、true、false 转成对应的 JSON 类型。要小心:开启类型转换后,XML 属性 id="007" 会变成 7,这很可能不是你想要的。
该选哪一种
- 紧凑: 用于属性是噪音、追求人类可读的 JSON。
- Badgerfish: 当你需要属性和文本与子元素处于同一深度时。
- 字面式: 当你必须无损地往返回 XML 时。
常见问题
当某个元素只出现一次时,转换工具默认用对象;出现两次或更多时用数组。如果你的消费方期望某种固定形态,用强制数组选项让它保持一致。
除非你启用「剥离命名空间」,否则命名空间前缀会保留在键中(ns:title)。声明本身会变成根元素上的 @xmlns:ns 属性。
字面式模式最接近无损,但元素与文本之间混合内容的顺序很棘手。紧凑模式肯定会丢失属性。Badgerfish 是一种务实的折中。
不会。转换在你的浏览器中运行。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
Markdown 图片生成器
生成带替代文本、title 属性和可选链接的 Markdown 图片语法。支持内联格式和引用格式输出。
IBAN 验证工具
在本地检查 IBAN 的注册国家长度、国内结构和 MOD 97-10 校验位。不上传数据,也不表示账户真实存在。
Luhn 算法校验工具
验证信用卡号、IMEI、SIN及其他受Luhn校验保护的号码。返回验证结果(通过或失败),并显示每个校验步骤及校验和计算过程。
此工具还提供其他语言版本
- XML zu JSON [DE]
- XML para JSON [PT]
- Chuyển đổi từ XML sang JSON [VI]
- XML till JSON [SV]
- แปลง XML เป็น JSON [TH]
- XML ke JSON [ID]
- XML → JSON [KO]
- XML a JSON [ES]
- XMLからJSONへ [JA]
- XML إلى JSON [AR]
- XML vers JSON [FR]
- XML naar JSON [NL]
- XML do JSON [PL]
- XML in JSON [IT]
- От XML к JSON [RU]
- XML'den JSON'a [TR]
- XML to JSON [EN]