# CSV 与 JSON 转换

把 CSV 转成对象或数组的 JSON 数组，或把 JSON 转回 CSV。自动识别分隔符，可读取使用分号和小数逗号的 Excel 文件。

https://codeknife.dev/zh/csv-json/

## 功能

把 CSV 转成 JSON 数组，或把 JSON 转回 CSV。按 RFC 4180 读取 CSV：支持带引号的字段、双写的引号以及字段内的换行。

## 使用方法

1. 粘贴 CSV 或 JSON，或拖入文件。
2. 选择 **CSV 转 JSON** 或 **JSON 转 CSV**。分隔符和小数点可保持 **自动识别**，也可自行设置。
3. 复制或下载结果，或用 **将输出作为输入** 把它变成下一步的输入。

## 示例

CSV `name;price` / `cheese;12,50` 会变成 `[{"name": "cheese", "price": 12.5}]`，关闭 **表头行** 后则是 `[["name", "price"], ["cheese", 12.5]]`。

## 须知

- 开启表头行时，每一行都会变成以列名为键的对象；字段数不同的行会连同行号一起报告。
- 分隔符根据前几行自动识别：逗号、分号、制表符或竖线。使用分号和小数逗号的 Excel 文件，**自动识别** 会把 12,50 读成 12.5。
- 只有读回来完全一样的值才会变成数字，所以 `007`、`1.50` 和很长的数字仍是文本。关闭数字读取可让全部保持为文本。
- JSON 转 CSV 需要对象数组（列为所有键的并集）或数组的数组。嵌套的值会写成 JSON 文本。

## CSV 文件是怎么读取的？

遵循 RFC 4180：字段由分隔符隔开，双引号内的字段可以包含分隔符和换行，其中的引号要写两次。分隔符会根据前几行自动识别。

## 常见问题

### 为什么数字变成了文本，或相反？

只有读回来完全一样的值才会变成数字，所以 007、1.50 和很长的数字仍是文本。关闭“读取数字和 true/false”可让全部保持为文本。

### 什么是分号格式的 Excel？

在某些地区设置下，Excel 用分号分隔字段，用逗号作小数点。分隔符或小数点为“自动识别”时，12,50 会被读成 12.5；选择小数逗号后，JSON 转 CSV 会输出分号分隔的文件。

### 我的数据会被发送出去吗？

不会。转换在浏览器中完成，你粘贴的内容不会发送到我们的服务器。