CSV 没有一个大家都遵循的规范,这就是为什么许多转换器在边界情况上 意见不一。本工具遵循 RFC 4180,并声明它偏离该规范的唯一之处,而不是 默默选择规则。
使用 JSON 到 CSV 转换器
选择方向,设置分隔符(逗号、分号或制表符),以及第一行是否包含列名, 然后点击转换。转换为 CSV 需要一个对象数组,这是唯一真正是表格的 JSON 形式;单个对象也被接受,视为一行的表格。
转换
[{"name":"Doe, Jane","age":30,"note":null},{"name":"Smith","age":25,"note":"line1\nline2"}]
产生:
name,age,note
"Doe, Jane",30,
Smith,25,"line1
line2"
字段只有在确实需要时才加引号:Doe, Jane 中的逗号强制加引号, 第二个 note 中嵌入的换行符强制加引号,而像 Smith 这样的简单值 则不加引号。
嵌套值和 null 会发生什么
嵌套的对象或数组根本没有 CSV 形式,它是一个单一值的网格,因此 作为自身的 JSON 文本写入单元格,而不是被丢弃或展开到虚构的列中。 null 变成一个空字段,这意味着 null 和空字符串一旦到达 CSV 就无法 区分。两种选择都在页面上声明,而不是留待以后发现。
为什么每个字段都变回字符串
从 CSV 转换时,每个值都刻意保持为字符串。CSV 文件完全不记录类型,
因此猜测类型就是为什么一个 01234 的邮政编码会丢失前导零变成
1234,以及一个长标识符会在某个东西试图将其读作数字时被四舍五入。
之后将已知列转换为数字是一行代码;被默默四舍五入的标识符是不可
恢复的。回读上面的例子,age 作为字符串 "30" 返回,而不是数字
30,空的 note 字段作为 "" 返回,而不是 null。
交换方向
交换将当前输出移入输入并翻转方向,因此你可以立即检查文档是否按 预期通过 CSV 往返,无需重新输入任何内容。在字段内有逗号或 ID 中有 前导零的数据上尝试,因为这些正是大多数转换器做错的情况。