YourTools.
English
返回目录
工具

JSON / YAML / XML 转换

校验、格式化或在 JSON、YAML、XML 共同子集之间转换;拒绝外部实体和自定义标签。

本地处理

文件只在当前浏览器处理;关闭或清空后不保留。

输入文本

输入或粘贴要处理的文本

调整设置

可调整输入格式、输出格式、缩进 等

JSON / YAML / XML 转换

开始处理

在本机浏览器中处理,可随时取消

请先输入文本

工具介绍

JSON、YAML、XML 在线互转,也可以校验并格式化其中一种。可以把接口返回的 JSON 转成 YAML 配置,把 XML 文档读成 JSON,或者在部署前确认 YAML 文件能正确解析。

转换基于三种格式共有的数据:对象、列表、文本、数字、true/false 和 null,注释不会保留。出于安全考虑,XML 的 DOCTYPE 与实体声明、YAML 的自定义标签都会被拒绝。最多处理 1 MB,全部在浏览器中完成,内容不上传。

使用步骤

  1. 粘贴 JSON、YAML 或 XML,也可以点击“使用示例”载入一个简单的 JSON 对象。
  2. 选择“输入格式”和“输出格式”;两者相同时,就是校验并格式化。
  3. 设置“缩进”的空格数,范围 0 到 8,默认 2,设为 0 时 JSON 和 XML 输出为一行;勾选“按键名排序”后,各层对象的键会按字符编码排序。
  4. 点击“运行”,预览结果并下载为 converted.json、converted.yaml 或 converted.xml。

格式与限制

输入
文本
输出
JSON、YAML、XML
大小上限
1 MB
可调设置
输入格式(JSON、YAML、XML);输出格式(JSON、YAML、XML);缩进;按键名排序
隐私
文件留在当前浏览器会话中,不上传文件字节。
费用
免费,无需注册

常见问题

XML 是怎样转换成 JSON 或 YAML 的?

根元素成为顶层键,属性变成以 @ 开头的键,与子元素并存的文本放在 #text 下,重复出现的子元素合并为列表。XML 本身没有数据类型,所以所有值都是文本,例如得到的是“30”而不是 30。

为什么输出的 XML 外面多了一层 <root>?

XML 必须只有一个根元素。数据顶层只有一个键时,用这个键作为根元素,否则整体包在 <root> 中。含空格或以数字开头等不合法的 XML 名称,以及直接嵌套的列表,都无法转换成 XML。

为什么 YAML 被拒绝?

不接受 !!python/object 这类自定义标签、同一映射中的重复键,以及用 --- 分隔的多文档文件,请每次只转换一个文档。合并键(<<)会作为普通键保留,不会展开合并。

长数字和注释会保留吗?

数字按 JavaScript 数值读取,超过 9007199254740991 的整数会丢失精度,长 ID 请写成字符串。YAML 和 XML 中的注释会被丢弃,因为转换的只是数据本身。

为什么 DOCTYPE 和实体会被拒绝?

XML 的 DOCTYPE 和实体声明可能展开或获取外部内容,因此一律拒绝;只解码 &amp; 等 5 个预定义实体和 &#169; 这样的数字引用。除 XML 声明外的处理指令也会被拒绝。