将 CSV 转换为 JSON
每一行 CSV 都会变成一个 JSON 对象,标题行提供属性名称。本指南用一个包含引号内逗号和转义引号的小文件演示转换过程,并逐条说明转换器所应用的规则。
示例详解
id,name,item,price,paid 1,"Smith, Jane","Monitor 27""",189.99,true 2,Kim,Keyboard,,false
[
{
"id": 1,
"name": "Smith, Jane",
"item": "Monitor 27\"",
"price": 189.99,
"paid": true
},
{
"id": 2,
"name": "Kim",
"item": "Keyboard",
"price": null,
"paid": false
}
]由于 "Smith, Jane" 被双引号包裹,其中的逗号会保留在值内,而不会开始新的一列。在 "Monitor 27""" 中,连续的两个双引号会变成一个字面引号。Kim 的 price 为空,因此变为 null;数字和 true/false 会输出为 JSON 类型,而不是字符串。
转换器的处理规则
- 每个非空行就是一条记录,空行会被跳过。带引号的值中不能包含换行。
- 值中含有分隔符时,请用双引号包裹。在引号内,引号字符要写成两个引号 ("")。
- 每个值开头和结尾的空格会被去除。
- 开启“第一行作为标题”时,第一行提供键名;关闭时,键名依次为 col0、col1、col2 等。
- 空单元格和 null 一词会变为 null,true 和 false(不区分大小写)会变为布尔值,数字文本即使带引号也会变为数字,因此 00123 会变成 123。
- 值的数量少于标题数量的行,缺少的列会填入 null;超出最后一个标题的值会被丢弃。