JSON 转 CSV JavaScript Object Notation ↔ Comma-Separated Values 免费 在线 安全
放进一个 JSON 文件,带走 CSV。读和写都在这里、在你的浏览器里完成,文件不离开你的设备——这趟转换保住了什么、保不住什么,下面都写着,不用你自己去发现。
转换你的文件
把 JSON 文件拖到这里,或者选一个。
你的文件不会离开这台设备。一切都在你的浏览器里完成。
不上传任何文件
从 JSON 转换
转换为 JSON
这些格式从哪里来
CSV 最古老,也最缺乏规范:把一张表写成一行行文字,自1970年代起就在用,直到2005年才被形诸文字;那时每个程序早已各自认定了分隔符是什么、引号何时该加。XML 于1998年自 SGML 长出,供那些必须携带严格结构、并要照着模式检验的文档使用。JSON 是道格拉斯·克罗克福德约在2001年从 JavaScript 里抽出来的,刻意削减到只剩对象、数组、数字和字符串——正是这份简省让它拿下了整个网络。YAML 是它可读的表亲,缩进在那里做着别处由括号来做的事。彼此转换时只有一件事要紧:CSV 是平的,是行与列的网格;而 JSON、XML、YAML 都是树。
你会在哪里遇到它们
CSV 是电子表格导出的东西,也是会计、网店平台或银行对账单递到你手上的东西。JSON 是网络服务彼此交谈所用,配置文件也越来越用它来写。XML 存活在较旧的企业系统里、发票规范里,以及办公格式自身的内部。YAML 是人们用手写设置的地方。在它们之间转换,就是每天把数据从它诞生的地方搬到它被需要的地方。
常见问题
我的 CSV 在 Excel 里打开成了一列。为什么?
因为你的电子表格等的是另一种分隔符。Excel 依照计算机区域设置里的列表分隔符;凡是逗号已经充当小数点的地方,那个分隔符就是分号——也就是欧洲大陆的大部分地区。此时一个以逗号分隔的文件看上去就是一列文字。请用导入对话框并明确指定分隔符,而不要双击打开文件。3.5 有时变成一个日期,也出于同一个区域设置。
为什么我层层嵌套的 JSON 变不成一张整齐的表格?
因为表格是平的,而 JSON 是一棵树。一行每列只放得下一个值;一个 JSON 对象却能在某个字段里的列表里再套一个列表。转换意味着要选择如何把它拍平:要么把嵌套的名字接成一个很长的列标题,要么把父行按子项的个数重复若干次。两者都是让步,而且都无法自动还原——所以从表格回到原来的形状,通常需要一个人来做决定。
文件会损失质量吗?
要看两种格式各自装得下什么。在存放同样内容的格式之间转换——PNG 转 BMP,WAV 转 FLAC——不会损失任何东西。转成为省空间而丢弃信息的格式,比如 JPEG 或 MP3,每转一次就损失一点,再转回去也拿不回来。凡是有选择余地的地方,本页倾向于保住原来的质量,而不是做出最小的文件。
我的文件会被上传到什么地方吗?
不会。转换发生在你自己的机器上、你的浏览器里面;文件从不离开它,这里也没有任何服务器能够接收它。正因如此,限制一个大文件的是你自己的内存而不是上传;也正因如此,你转换的任何东西都不可能出现在任何人的日志里——包括我们的。不过,音频和视频工具会在你第一次使用时从本站取来它们的转换引擎——约三十兆字节,仅此一次;此后工作依然完全在你自己的机器上进行。
人们为什么把 JSON 转换成 CSV
JSON 是程序之间互相交谈所用的语言。网络服务的导出、API 的应答、应用保存的配置、数据库的转储:其中大部分都以 JSON 的形式到来。它对软件很出色,对人却别扭,因为满屏的括号、引号和逗号,是你无法排序、筛选或求和的东西。CSV 则相反:一张朴素的表,每行一行,单元格以逗号分隔,能在世界上每一个电子表格中打开。这就是人们把 JSON 转换成 CSV 的原因:他们有程序生成的数据,想查看它、统计它,或把它交给生活在电子表格里的人。
这些情形都很熟悉。一位从 API 拉取了记录并想要数据透视表的分析师。一位从在线平台导出了订单并需要把它们放进 Excel 的店主。一位拥有某工具保存的调查结果的研究者。一位想一眼检查几百条记录的开发者。在每种情形下,数据都已经是结构化的,所缺的只是那张表。
本页在您的浏览器中把 JSON 转换成 CSV。您的文件在这里被读取和写出,所以它绝不离开您的设备,这对客户名单、订单和其他任何个人信息都很重要。而且本页会事先告诉您这一跨越会保留什么、不能保留什么,而不是让您自己去发现。下面您会看到转换如何进行、哪种 JSON 可以变成表,以及其余的会怎样。
转换如何进行
键成为表头,按它们首次出现的顺序
您的 JSON 文件在您的浏览器内被读取。记录的键成为 CSV 的表头行,按它们首次出现的顺序排列。然后每条记录成为一行,每个值照原样写出。如果您看结果的第一行,会看到字段的名称;在它们下面,每条记录一行。
缺少的键留下一个空单元格
记录并不总是整齐划一。某一条可能缺少其他记录都有的字段。这时缺少某个键的行会留下一个空单元格,而不是把各列挤着移动。该列留在它该在的位置,单元格只是空的,因此表保持对齐。
每一行和每一列
什么都不会丢弃。每条记录成为一行,任何地方出现的每个键成为一列。您无需担心只在第一千条记录中出现的字段会被漏掉。
保留什么
所有的行和所有的列
每一行和每一列都被保留。您提供的数据,就是您得到的数据,只是变成了表格形式。
照原样的值
每个值照原样写出。数字仍是数字,文本仍是文本,含有逗号或引号的值会被正确加引号,使电子表格把它们读作一个单元格。
字段的顺序
各列遵循键首次出现的顺序,这通常就是生成该文件的程序所用的顺序。这使表对任何见过原始形式数据的人来说都很熟悉。
把 JSON 转换成 CSV 之前您应该知道的
只有一种 JSON 形态本身就是表
只有一种 JSON 形态本身就是表:扁平对象的数组,例如一份记录列表,每条都有同类的字段。单个对象,或对象里套对象的树,没有可写的行,会被拒绝,而不是被压平成您没要求的东西。这是一个刻意的选择。压平一棵树涉及对名称和保留哪些分支的决定,而错误的猜测会产生一张看上去正确而实则不然的表。
嵌套的值以 JSON 文本写出
当一个值本身是列表或对象时,它会以 JSON 文本写入单元格,因为单元格容纳不了一个分支。所以带有一个装着列表的标签字段的记录,会在一个单元格中把该列表显示为文本。它全都在那里,如果您愿意,可以用电子表格的工具把它拆开。
CSV 没有类型
CSV 文件是文本。007 是数字还是代码,要由电子表格在打开文件时决定,而电子表格以猜错著称。前导零、长数字和日期在打开时可能被改变。如果这很重要,请用导入对话框导入文件,并把这样的列标记为文本。
如何在这里把 JSON 转换成 CSV
添加您的文件
把 JSON 文件拖到页面上,或从您的设备中选取。它在您的浏览器内被读取,不会上传。
转换
按下按钮。普通大小的文件只需片刻。请保持页面打开,直到完成。
下载并打开
下载 CSV,用电子表格程序打开,或用文本编辑器查看。检查表头、中间的几行和最后一行。
进一步了解 JSON 和 CSV
树与表
JSON 描述的是一棵树:对象包含值,这些值又可以是对象或列表。CSV 描述的是一张表:行和列,仅此而已。树可以容纳表所不能的东西,比如一个下面还有不同分支的分支。另一方面,作为统一记录列表的表,可以用 JSON 无损地写出。把 JSON 转换成 CSV,就是从一般形式走向特殊形式,当数据其实一直就是一张表时,它进行得很顺畅。
为什么严格有帮助
接受任何 JSON 并自动压平的工具,常会发明 address.street 或 items.0.price 这样的列名。这很方便,直到您需要知道发生了什么。通过只接受本身已是表的形态,本页让您免于无声的决定。如果您的文件是一棵树,您会立刻知道。
逗号、引号与换行
CSV 有自己的陷阱:值里的逗号、引号、单元格中间的换行。它们通过给单元格加引号并把其中的引号加倍来处理,使电子表格按本意读取这张表。
常见情形详解
来自网络服务和 API 的导出
大多数服务以 JSON 返回记录列表。如果您需要把它们放进电子表格,就把 JSON 转换成 CSV 并打开结果。这是从 API 应答到数据透视表最快的途径。
订单、客户和产品
商店平台常让您把数据导出为 JSON。订单或产品的 CSV 只需点几下,就能按日期排序、按客户筛选或按产品汇总。
调查结果和日志
把调查答案或事件日志存为 JSON 的工具,每个答案或事件产生一条记录。作为 CSV,它们可以被统计、绘图和比较。
一眼检查数据
开发者常把几百条记录转换成 CSV,只是为了阅读它们。表比嵌套的花括号更容易浏览,电子表格还能排序并突出显示异常项。
把 JSON 转换成 CSV 之前的实用建议
检查文件的形态
用文本编辑器打开 JSON。如果它以方括号开头,并包含一个由花括号包围、值很简单的记录列表,那就是正确的形态。如果它以花括号开头,里面嵌套着记录,请找到您需要的列表并先把它提取出来。
了解哪些值是嵌套的
如果某些字段包含列表或对象,它们会在单元格中显示为 JSON 文本。决定您是否需要把它们拆开,并计划在电子表格中进行。
注意编码和分隔符
CSV 以逗号写出。某些地区的某些电子表格期望分号。如果文件打开后是单独一列,请使用导入功能并设置分隔符。
大文件
一切都在您的设备上运行,所以非常大的文件需要内存。对于数兆字节的文件,请使用电脑,如果页面吃力,就把数据拆分。
转换前人们常问的问题
我的文件为什么被拒绝?
因为它不是扁平对象的数组。单个对象,或对象里套对象的树,没有可写的行。挑出您需要的列表并转换它。
缺少某个字段的记录会怎样?
它在该列留下一个空单元格。各列不会移位。
记录里的列表会怎样?
它们以 JSON 文本写入单元格,因为单元格容纳不了一个分支。
为什么我的前导零在电子表格里消失了?
因为电子表格在打开文件时认定该列是数值。CSV 里保留着这些零;请使用导入对话框并把该列标记为文本。
我的文件会被上传吗?
不会。转换在您的浏览器中运行,文件绝不离开您的设备。
我能转回 JSON 吗?
可以。CSV 转 JSON把表格转回记录列表。
把 JSON 转换成 CSV 时的明智选择
CSV 还是真正的电子表格?
如果您想要一个在 Excel 中以规范工作表打开的文件,JSON 转 XLSX把同一张表写成工作簿。CSV 更轻、更通用;XLSX 打开时无需任何导入步骤。
其他目标
如果目的地是配置文件或标记文件,JSON 转 XML和JSON 转 YAML可满足这些需要。
保留 JSON
JSON 是原件。它保存着结构和类型。请保留它,并把 CSV 当作数据的一个视图。
转换后获得好结果
导入,而不只是打开
当文件包含代码、电话号码或日期时,请使用电子表格的导入对话框并设置每列的类型。这避免了自动猜测可能造成的悄然损坏。
拿几行与源文件核对
把表中的几条记录与 JSON 比较。这只需一分钟,并告诉您这张表是忠实的。
需要时拆分嵌套的单元格
如果某个单元格以文本形式装着一个列表,请使用分列工具或公式把它拆开。或者回头准备 JSON,使每一项都有自己的一条记录。
准备好 JSON 以便顺利转换
在把 JSON 转换成 CSV 之前整理数据
如果您的文件是一棵树,通常可以在把 JSON 转换成 CSV 之前把它重塑为扁平记录的列表。挑出装着您想统计之物的列表:订单、客户、事件。把它复制到单独的文件中,外面加上方括号,本页就会接受它。这个小步骤就是遭到拒绝与得到干净表格之间的差别。
让字段名有意义
键成为表头,所以名称越清楚,表越易读。如果您能控制源头,请使用 order_date 和 customer_name 这样的名称,而不是只有程序员才懂的缩写。
类型要保持一致
一个字段在大多数记录中是数字而在少数记录中是文本,会让电子表格困惑。如果可以,请在转换前清理那些异常的,使每一列只表示一件事。
想一想日期
JSON 中的日期通常是某种约定格式的文本。它们照原样写入 CSV。把 JSON 转换成 CSV 之后,请在导入时告诉电子表格如何读取它们,它就会把它们当作日期处理,让您按时间排序和筛选。
先在一小块上测试
如果您的文件很大,请把前二十条记录复制到测试文件中并转换它。快速看一眼结果,就能知道形态和字段名是否符合预期,然后再在整体上花时间。
隐私与处理
为什么本地转换对数据很重要
数据文件常包含私密内容:客户、订单、地址、消息。许多在线转换器会把您的文件上传到服务器,处理后返回结果,而一段时间里有一份副本留在您无法控制的机器上。在这里,是您自己的浏览器在工作,所以数据留在您的设备上。
离开时会怎样
当您关闭页面,转换后的文件会从浏览器中消失,所以请先下载。关于您的数据,什么都不会保留。
如果出了问题
页面说文件不是有效的 JSON
可能有多余的逗号、缺少的引号或没有闭合的括号。请在能高亮显示 JSON 错误的编辑器中打开文件,并修复它指出的那一行。
各列看上去乱了
您的电子表格可能期望不同的分隔符。请导入文件并把分隔符设为逗号。
页面在处理大文件时卡住
一切都在您的设备上运行,大文件需要内存。请在电脑上再试一次,或拆分数据。
相关工具
同一系列的工具涵盖相邻的工作。要转回去,请用CSV 转 JSON。对于工作簿,JSON 转 XLSX和XLSX 转 JSON处理 Excel 文件。对于其他结构化数据格式,有JSON 转 XML、XML 转 JSON、JSON 转 YAML和YAML 转 JSON。当数字在 PDF 里时,PDF 转 XLS从页面重建一张表。
一个实际例子
假设您从在线商店把 500 个订单导出为 JSON 文件,想知道哪些产品卖得最好。您把文件拖到这里并按下按钮。片刻之后,您下载一个 CSV,表头是字段名,下面有 500 行。您把它导入电子表格,把产品代码标记为文本,制作数据透视表,看到答案。JSON 作为源头留在您的文件夹里。
简短的清单
转换前
检查文件是否是记录列表。注意哪些字段是嵌套的。保留 JSON。
转换中
停留在页面上,直到文件准备好。
转换后
用正确的类型导入 CSV,拿几行与源文件核对,并把表保存为您电子表格的格式。
常见错误
给它一棵树
不要指望对一个深度嵌套的文件把 JSON 转换成 CSV。请先提取记录列表。
双击打开并相信结果
电子表格会猜类型。对代码和日期,请用明确的类型导入。
删除 JSON
请保留它。它保存着表无法保存的结构。
您的数据留在您的设备上
转换在本地进行。您的文件由您自己的浏览器读取,在那里重写,并作为 CSV 交还给您。什么都不会上传,所以没有副本落在服务器上,别人也读不到它。对于有私密内容的数据,这是把 JSON 转换成 CSV 的安全方式。
小结
要在这里把 JSON 转换成 CSV,请拖入文件并按下按钮。它在您的浏览器中被读取和写出,所以文件绝不离开您的设备。每一行和每一列都被保留:键成为表头,按它们首次出现的顺序排列,每个值照原样写出。缺少某个键的行会留下一个空单元格,而不是把各列挤着移动。只有一种 JSON 形态本身就是表,即扁平对象的数组。单个对象,或对象里套对象的树,没有可写的行,会被拒绝,而不是被压平成您没要求的东西。当一个值本身是列表或对象时,它会以 JSON 文本写入单元格,因为单元格容纳不了一个分支。