JSON 转 CSV

将 JSON 对象数组转换为 CSV 格式。


把 JSON 转换为 CSV 是什么

从 API 取得的 JSON 是以机器处理为前提的格式,直接以电子表格软件开启并不可行。本工具会读取 JSON 的对象数组,将键作为标题列、各元素作为一行,转换成 CSV。转换后即成为可在 Excel 或 Google 电子表格中汇总、排序的形式。

这里有两项前提。其一是对象必须是对象的数组;单个对象请以数组包起来后再输入。其二是深层嵌套的处理。若值本身是对象或数组,并不会展开为多个字段,而是以 JSON 字符串原样填入储存格。事先加以扁平化会更容易处理。

JSON→CSV 转换的步骤

  1. 贴上 JSON 将对象的数组贴入输入栏。直接复制 API 的回应亦无妨。
  2. 确认转换结果 键会成为标题列,每个元素排成一行。请确认是否出现了预期的字段。
  3. 下载 CSV 字符编码为 UTF-8。若以 Excel 开启时出现乱码,请在导入时指定 UTF-8。

用好本工具的小技巧

  • 输入必须是 JSON 对象数组格式([{}, {}, ...]),不支持单个对象。
  • 需要在 Excel 或 Google 表格中处理 REST API 响应数据时非常方便。
  • 深层嵌套对象或数组的值不会被展平,将以 JSON字符串(如 {"a":1})形式输出。
  • 下载的 CSV 文件编码为 UTF-8。若在 Excel 中出现乱码,请以 UTF-8(带 BOM)方式打开。

JSON→CSV 转换的实用场景

汇总 API 的回应

将取得的数据转成 CSV,即可直接以电子表格的函数或枢纽分析表进行汇总。

分享给非工程人员

对于直接给 JSON 也读不懂的对象,可以表格形式交付。更便于请对方确认或修正。

作为资料迁移的中间格式

在将资料移往支持 CSV 导入的工具时,可用于转换。许多服务都支持 CSV 导入。

确认条数与缺漏

做成表格后,行数与空栏一目了然。适合用来检查是否凑齐了预期的条数。

JSON·CSV 的术语

对象数组
以 [{...}, {...}] 形式排列多个对象的结构。由于对应表格的各行,因此可转换为 CSV。
键(Key)
在对象内指向值的名称。在 CSV 中会成为标题列的字段名。
嵌套
值之中又含有对象或数组的嵌套结构。是无法顺利收进表格形式的部分。
扁平化
指将嵌套展开、改为单一层级。事先处理后即可作为 CSV 的字段来对待。
BOM
加在文件开头的字符编码标记。用于希望让 Excel 正确开启 UTF-8 的 CSV 时。

常见问题

不支持。本工具仅接受 JSON 对象数组([{}, {}])。若您只有单个对象,请先将其包裹在数组中(例如:[{}])。

深层嵌套的值不会被展平,将以 JSON 字符串(如对象会输出为 {"a":1})的形式输出。如需将这些值放入独立的列,请在转换前先展平 JSON 结构。

下载的 CSV 文件使用 UTF-8 编码。在 Excel 中请通过「数据」→「从文本/CSV」导入,并选择 UTF-8(带 BOM)编码。
工具君

闲话 ― JSON 的诞生:是"发现"而非"发明"

JSON(JavaScript Object Notation)由 Douglas Crockford 于 2001 年前后整理成型。他曾表示,自己并非发明了 JSON,而是发现了它——因为他只是将 JavaScript 本就存在的对象字面量语法标准化为数据交换格式。

从 2006 年前后,随着 Ajax(异步通信)的普及,JSON 迅速流行。与 XML 冗长的语法相比,简洁的 JSON 深受开发者青睐。尽管早期曾有"JSON 无法取代 XML"的质疑,如今 JSON 已成为 REST API 的标准数据格式。

一个有趣的花絮:Crockford 在 JSON 规范的版权声明中加入了"The Software shall be used for Good, not Evil."这一条款,导致 Google、IBM 等大公司的法务部门因无法判定"善恶"而要求获得正式授权,引发了一场小小的风波。