⌘K 切换工具
FORMAT & CONVERT

数据格式转换工具 — JSON、YAML、CSV

在JSON、YAML、CSV格式之间转换数据。

local
data-converter
§01 关于此工具

概述

这个工具在三种常见格式之间转换结构化数据:JSON、YAML 和 CSV。它先按源格式的规则解析输入,再把同一份数据用目标格式重新序列化出来——JSON 用 2 个空格缩进,YAML 用 2 个空格缩进且不做换行折行,CSV 则对含有逗号、引号或换行的取值正确加引号。三种格式各自的规则不同,所以这里做的不是文本替换,而是先完整解析一遍,再按目标格式重新写出来。

使用方法

  1. From 下拉框里选源格式,在 To 下拉框里选目标格式(jsonyamlcsv)。
  2. 把数据粘贴进 Input 文本域。你输入的同时转换就在进行。
  3. Output 文本域读取或复制结果。解析错误会显示在它上方。

示例

  • JSON → YAML:[{"id":1,"name":"Alice"}]- id: 1 / name: Alice
  • CSV → JSON:id,name1,Alice[{"id": "1", "name": "Alice"}]
  • JSON → CSV:[{"a":1},{"a":2,"b":3}] → 列为 a,b,缺少的键留空。

说明

CSV 一侧的取值总是被解析成字符串——数字不会自动判型。所以数据只要经过 CSV 走一圈,类型信息就丢了;而嵌套结构在 CSV 里根本无法表达。另外,要转成 CSV,输入必须是一个对象数组,列的集合取所有对象键名的并集;不是这种形状的输入会得到一条错误提示,而不是结果。

FAQ
转换的时候数据会被上传吗?
不会。解析和序列化都在浏览器里用 js-yaml 和一个本地的 CSV 解析器完成,不向任何服务器发送。
CSV 是怎么解读的?
第一行被当作表头,之后每一行变成一个对象,键名取自去掉首尾空白的表头。反过来要转成 CSV,数据必须是对象数组;列的集合是所有对象键名的并集。
为什么转成 CSV 有时会失败?
CSV 只能表达一张扁平的表。如果解析出来的输入不是对象数组——比如是单个对象,或者是深层嵌套的数据——工具会提示 "CSV output requires an array of objects"。