咖啡时间工具箱

JSON 转 YAML/XML

选好“从”和“到”的格式,粘贴内容,点“转换”。支持 JSON、YAML、XML、CSV 两两互转,并会如实提示转换中哪些信息会丢失。内容只在你的浏览器里处理,不会上传。

使用限制

使用方法

  1. 在“从”和“转成”里选择格式,把内容粘贴到输入框。
  2. 点“转换”。第一次转换到 YAML 或 XML 时才会加载对应的解析库(约 14KB 与 26KB),之后不会再加载。
  3. 结果下方会列出这次转换可能丢失或改变的信息,请逐条看一眼。
  4. XML 的约定:属性变成以 @ 开头的键(id="1" 对应 "@id"),元素里的文字在同时有属性或子元素时放在 "#text",重复出现的元素变成数组;反过来 JSON 转 XML 时遵循同样的约定。
  5. CSV 的约定:第一行是表头,每一行对应 JSON 数组里的一个对象;JSON 转 CSV 需要“对象组成的数组”。

常见问题

YAML 里的 yes / no 会变成 true / false 吗?

不会。本工具按 YAML 1.2 处理,yes 就是字符串 "yes"。但把含 yes 的 JSON 转成 YAML 后交给 YAML 1.1 解析器(例如旧版 PyYAML)时可能被当成布尔值,页面会提示。

XML 转 JSON 后属性去哪了?

属性变成以 @ 开头的键,例如 <a id="1">x</a> 转成 {"a":{"@id":"1","#text":"x"}}。

为什么要拒绝 XML 里的实体声明?

外部实体可以让解析器去读取本地文件或访问网络(XXE 攻击),自定义实体可以被嵌套成“实体膨胀”耗尽内存。本工具运行在你自己的浏览器里,本来也不会去加载外部资源,但仍选择直接拒绝,更稳妥。

我的数据会被上传吗?

不会,转换全部在你的浏览器里完成。