工具指南23-CSV转JSON在线工具

3 阅读7分钟

CSV 和 JSON 是数据交换的两大主流格式。CSV 适合表格型数据,人类可读,Excel 能直接打开;JSON 则是前后端接口、配置文件、NoSQL 数据库的标准格式。两者互转是日常开发中的高频需求。

本文介绍 anyfreetools.com 的 CSV to JSON 在线转换工具,无需安装任何依赖,打开浏览器即可完成转换。

CSV 和 JSON 的格式差异

CSV(Comma-Separated Values)是一种纯文本格式,用逗号(或其他分隔符)分隔字段,第一行通常是列名(Header):

id,name,age,city
1,Alice,28,Beijing
2,Bob,32,Shanghai
3,Charlie,25,Guangzhou

转换为 JSON 后,每行变成一个对象,列名作为 key:

[
  { "id": "1", "name": "Alice", "age": "28", "city": "Beijing" },
  { "id": "2", "name": "Bob", "age": "32", "city": "Shanghai" },
  { "id": "3", "name": "Charlie", "age": "25", "city": "Guangzhou" }
]

看起来简单,但实际转换中有不少细节需要处理:

  • 数据类型:CSV 中所有值都是字符串,转 JSON 时数字、布尔值是否自动转换?
  • 空值处理:空字段转为 null""、还是直接省略 key?
  • 分隔符:有的 CSV 用制表符(TSV)、分号分隔
  • 引号转义:字段内容包含逗号时,CSV 用引号包裹,解析器需要正确处理
  • 嵌套结构:能否生成嵌套 JSON 而非扁平对象数组?

在线工具封装了这些细节,省去手写解析代码的麻烦。

工具核心功能

输入方式

支持两种输入方式:

直接粘贴:在输入框中粘贴 CSV 文本,适合快速转换少量数据。

上传文件:点击上传按钮选择本地 .csv 文件,适合处理较大的数据集。

分隔符配置

工具支持自定义列分隔符,常见选项:

分隔符符号典型来源
逗号,标准 CSV,Excel 导出
制表符\tTSV 格式,Excel/数据库导出
分号;欧洲地区 Excel 默认导出
竖线|部分日志、配置文件

遇到分隔符选错导致输出乱套时,切换一下分隔符即可解决。

输出格式

工具提供多种输出格式选项:

数组格式(默认):每行数据转为一个对象,所有对象放入数组,适合大多数接口场景:

[
  { "name": "Alice", "age": 28 },
  { "name": "Bob", "age": 32 }
]

键值对格式:以某列作为 key,其余列作为 value,生成对象而非数组。适合需要按 ID 快速查找的场景:

{
  "1": { "name": "Alice", "age": 28 },
  "2": { "name": "Bob", "age": 32 }
}

数据类型推断

工具支持自动类型推断选项:

  • 开启:纯数字字段转为 number,true/false 转为 boolean,空值转为 null
  • 关闭:所有字段保持 string 类型(适合需要精确控制类型的场景,比如手机号不能转为 number)

格式化与压缩

输出支持:

  • 美化(Pretty Print):带缩进,便于阅读和调试
  • 压缩(Minified):去掉空格换行,减小体积,适合生产环境

实战案例

案例一:处理 Excel 导出数据

从 Excel 导出 CSV 时,常见问题是编码和分隔符。中文 Windows 的 Excel 默认导出 GBK 编码,且分隔符是逗号。

直接粘贴到工具输入框,选择逗号分隔符,开启类型推断,得到标准 JSON 数组,可直接用于接口请求或数据库导入。

案例二:数据库查询结果转 JSON

数据库工具(Navicat、DBeaver 等)支持将查询结果导出为 CSV。导出后用本工具转为 JSON,再交给前端或导入 MongoDB 等 NoSQL 数据库:

原始 CSV(从 MySQL 导出):

user_id,email,created_at,is_active
101,alice@example.com,2024-01-15 10:30:00,1
102,bob@example.com,2024-02-20 09:00:00,0

转换结果(开启类型推断):

[
  {
    "user_id": 101,
    "email": "alice@example.com",
    "created_at": "2024-01-15 10:30:00",
    "is_active": 1
  },
  {
    "user_id": 102,
    "email": "bob@example.com",
    "created_at": "2024-02-20 09:00:00",
    "is_active": 0
  }
]

注意:is_active 字段值是 1/0,工具会转为 number,如需 boolean 需手动处理。

案例三:制表符分隔的 TSV 文件

部分数据导出格式是 TSV(Tab-Separated Values),文件扩展名可能是 .tsv.txt。将工具的分隔符切换为制表符即可正确解析,例如:

user_id	name	score
1	Alice	95
2	Bob	87

转换结果与逗号分隔的 CSV 完全一致,工具自动按列名生成 JSON 对象数组。

案例四:配置数据批量导入

假设要批量创建配置项,CSV 来自运营同学填写的 Excel 表格:

key,value,description,enabled
max_retry,3,最大重试次数,true
timeout,5000,请求超时(ms),true
debug_mode,false,调试模式,false

开启类型推断后:

[
  { "key": "max_retry", "value": 3, "description": "最大重试次数", "enabled": true },
  { "key": "timeout", "value": 5000, "description": "请求超时(ms)", "enabled": true },
  { "key": "debug_mode", "value": false, "description": "调试模式", "enabled": false }
]

value 字段中的数字被正确识别为 number,enabled 中的 true/false 被转为 boolean。注意 debug_mode 行的 valuefalse 也被推断为 boolean,如果业务上需要保留字符串 "false",需关闭类型推断。确认类型符合预期后,可直接用于后端配置导入接口。

常见问题排查

转换后中文乱码

通常是编码问题。Excel 在 Windows 上默认保存为 GBK 编码,而工具一般按 UTF-8 处理。解决方式:在 Excel 中另存为时选择"CSV UTF-8(逗号分隔)"格式,或通过 Python 脚本转换编码:

import pandas as pd
df = pd.read_csv("data.csv", encoding="gbk")
df.to_csv("data_utf8.csv", encoding="utf-8", index=False)

字段内容包含逗号时解析错误

标准 CSV 会用引号包裹含逗号的字段:

name,address
Alice,"Beijing, Chaoyang"

如果工具解析出错,检查是否正确处理了带引号的字段。正规工具都支持 RFC 4180 标准,通常不会有问题。

数字字段前导零丢失

开启类型推断时,"0086" 会被转为数字 86,导致前导零丢失。手机号、邮编、身份证号等字段需要关闭类型推断,或在 CSV 中将这类字段加引号包裹。

输出数组为空

检查 CSV 是否有 Header 行。工具默认将第一行作为列名,如果 CSV 没有 Header,需要手动添加或在工具中关闭"首行为列名"选项。

与代码方案对比

为什么用在线工具而不是写代码?

// 用 papaparse 库
import Papa from "papaparse";

const result = Papa.parse(csvString, {
  header: true,
  dynamicTyping: true,
  skipEmptyLines: true,
});
console.log(result.data);

代码方案的问题:

  1. 需要安装依赖npm install papaparse,且依赖版本需要维护
  2. 需要写胶水代码:处理文件读取、编码、错误提示
  3. 不适合临时需求:运营同学或测试同学需要自行转换数据时,让他们安装 Node.js 环境不现实

在线工具更适合:一次性或低频的数据转换任务非技术同学的自助操作快速验证 CSV 数据格式是否正确

日常开发中如果 CSV 转 JSON 是业务流程的一部分(如定时任务、自动化导入),还是应该用代码实现,保证稳定性和可维护性。

总结

CSV to JSON 在线转换工具 覆盖了日常数据转换的主要场景:

  • 零配置快速转换:粘贴 CSV,一键得到 JSON
  • 灵活的分隔符支持:兼容逗号、制表符、分号等格式
  • 类型推断:数字、布尔值自动识别,减少后处理工作量
  • 多种输出格式:数组、键值对、美化/压缩任意切换

下次遇到需要将 Excel 数据或数据库导出结果转为 JSON 的场景,直接打开 anyfreetools.com 就能搞定。


原文链接chenguangliang.com/posts/blog1…