JSON / YAML / XML 转换
校验、格式化或在 JSON、YAML、XML 共同子集之间转换;拒绝外部实体和自定义标签。
本地处理
文件只在当前浏览器处理;关闭或清空后不保留。
输入文本
输入或粘贴要处理的文本
调整设置
可调整输入格式、输出格式、缩进 等
开始处理
在本机浏览器中处理,可随时取消
工具介绍
JSON、YAML、XML 在线互转,也可以校验并格式化其中一种。可以把接口返回的 JSON 转成 YAML 配置,把 XML 文档读成 JSON,或者在部署前确认 YAML 文件能正确解析。
转换基于三种格式共有的数据:对象、列表、文本、数字、true/false 和 null,注释不会保留。出于安全考虑,XML 的 DOCTYPE 与实体声明、YAML 的自定义标签都会被拒绝。最多处理 1 MB,全部在浏览器中完成,内容不上传。
使用步骤
- 粘贴 JSON、YAML 或 XML,也可以点击“使用示例”载入一个简单的 JSON 对象。
- 选择“输入格式”和“输出格式”;两者相同时,就是校验并格式化。
- 设置“缩进”的空格数,范围 0 到 8,默认 2,设为 0 时 JSON 和 XML 输出为一行;勾选“按键名排序”后,各层对象的键会按字符编码排序。
- 点击“运行”,预览结果并下载为 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 和实体声明可能展开或获取外部内容,因此一律拒绝;只解码 & 等 5 个预定义实体和 © 这样的数字引用。除 XML 声明外的处理指令也会被拒绝。
相关工具
代码格式化
格式化或压缩 HTML、CSS、SCSS、Less、JavaScript、TypeScript、JSON、Markdown、YAML、XML、SQL、C、C++、C#、Java、PHP、Python 与 Nginx 配置。
JSON 格式化与校验
格式化、压缩或按键名排序 JSON,修复常见错误,或转义为字符串;出错时给出行列位置,大数字不丢精度。
键值对转代码
把 key=value 或 key: value 形式的行转换为 JSON、YAML、properties、.env、TypeScript、Python、PHP、Java、C#、Go、HTML 下拉选项或 SQL。
时间与时区转换
每行一个时间,在 ISO 8601、Unix 时间戳和指定时区本地时间之间转换;夏令时缺失或重复的时间会明确提示。
公历农历转换
公历日期转农历(含干支年、生肖、节气与节日),或把农历日期(闰月写作“闰”)转回公历,每行一个。
JSON 生成代码类型
根据示例 JSON 生成 TypeScript 接口、C# 类、Java record、Go 结构体、Rust serde 结构体或 Python dataclass;部分样本缺少的字段标为可选。