无需登录 数据私有 本地保存

JSON转CSV工具 - 在线JSON数据导出表格

85
0
0
0
Q:什么是嵌套展平?工具如何处理深层嵌套的JSON?
A:嵌套展平是指将JSON中的多层嵌套对象/数组展开为扁平的CSV列结构的过程。本工具使用递归算法自动遍历JSON的所有层级,采用点号表示法将父级和子级字段名连接起来作为CSV列标题。例如,嵌套字段user.address.city会被展平为user.address.city作为CSV的一列。无论JSON嵌套多深,工具都能自动处理。对于数组类型的值,工具会根据数组索引生成带编号的列名,如phones.0、phones.1等。如果数组中包含对象,则会展开为phones.0.number、phones.0.type等更细化的列。
Q:当JSON数组中的对象包含不同的键时,工具如何处理?
A:这种情况称为「不一致对象」,在真实数据中非常常见。本工具采用「联合键」处理策略:首先遍历所有对象,收集所有出现过的键名作为CSV的列标题(取并集),然后为每个对象生成对应的行。如果某个对象缺少某个键,则在该列填入空值。例如,如果对象A有name和age两个字段,对象B有name和email两个字段,则生成的CSV会有name、age、email三列,对象A的email列为空,对象B的age列为空。这样确保了所有数据都被完整保留,不会因为字段不一致而丢失信息。
Q:为什么用Excel打开CSV文件时中文显示为乱码?UTF-8 BOM如何解决这个问题?
A:这是Microsoft Excel的一个已知行为。Excel在打开CSV文件时会根据操作系统的区域设置猜测文件编码,在中文Windows上默认使用GBK编码。如果文件实际是UTF-8编码但没有BOM标记,Excel就会错误解码导致中文乱码。解决方案是在CSV文件开头添加UTF-8 BOM(三个特殊字节:0xEF 0xBB 0xBF),这会明确告诉Excel使用UTF-8编码。本工具提供「添加UTF-8 BOM」选项,勾选后生成的CSV文件将包含BOM标记,Excel就能正确显示中文。如果使用Google Sheets或Numbers等其他软件打开CSV,通常不需要BOM也能正确识别编码。
Q:应该选择哪种分隔符?不同分隔符有什么区别和适用场景?
A:本工具提供4种分隔符供选择:逗号(,)是CSV标准分隔符,适用于大多数场景,推荐作为默认选择;制表符(Tab)生成TSV格式,适合数据中包含大量逗号的场景;分号(;)在欧洲地区更常用,因为这些地区使用逗号作为小数点分隔符;管道符(|)在日志处理和某些数据交换格式中常见,视觉上也更易区分。选择分隔符时主要考虑两点:一是目标软件的默认支持(Excel默认支持逗号和分号),二是数据内容是否与分隔符冲突(如果数据中频繁出现逗号,则应选择其他分隔符)。如果不确定,使用默认的逗号分隔符即可。
Q:三种引用模式有什么区别?应该选择哪种引用模式?
A:引用模式决定CSV字段值是否用双引号包裹。标准引号模式用双引号包裹所有字段值,格式统一、兼容性最好,推荐作为默认选择;条件引号模式仅在字段值包含分隔符、换行符等特殊字符时才加引号,生成的文件更紧凑;无引号模式完全不使用引号,仅在确定数据不包含任何特殊字符时可用。实际使用中,如果数据可能包含逗号、换行符、引号等字符,强烈建议使用标准引号模式以确保CSV解析器能正确解析。只有在确认数据完全「干净」的简单场景下,才考虑使用无引号模式。
Q:我的JSON文件很大(超过10MB),无法上传怎么办?
A:本工具目前支持最大10MB的JSON文件,这主要受限于浏览器内存和性能考虑。对于超过限制的大文件,建议采取以下替代方案:首先,尝试压缩JSON文件(去除不必要的空白和格式化),减小文件体积后重新上传;其次,如果JSON是数组结构,可以将数组拆分为多个较小的片段分别转换;第三,对于持续性的大文件处理需求,推荐使用命令行工具如jq(配合cjq)或Python的pandas库进行本地处理。对于大多数日常使用场景,10MB的限制已经能够覆盖。
Q:转换后的CSV文件能否直接在MySQL、PostgreSQL等数据库中导入?
A:可以。本工具生成的CSV文件可以直接被大多数数据库的导入工具使用。MySQL可以使用LOAD DATA INFILE命令导入,PostgreSQL可以使用COPY命令导入。使用时需要指定正确的分隔符(默认逗号)和编码格式(UTF-8)。如果勾选了「添加UTF-8 BOM」选项,在导入前可能需要去除BOM标记,因为部分数据库工具不识别BOM。建议在导入时根据数据库的字段类型定义,先确认CSV的列标题和数据格式与数据库表结构匹配。
Q:工具是否支持JSON Lines(.jsonl)格式?如何处理每行一个JSON对象的文件?
A:JSON Lines(也称为NDJSON,Newline Delimited JSON)是一种每行包含一个独立JSON对象的文本格式。本工具主要针对标准JSON数组格式设计。如果您的数据是JSON Lines格式,建议先将其转换为标准JSON数组格式:在每行JSON对象之间添加逗号分隔,然后用方括号[]包裹整个文件内容。例如,将第一行的}后添加逗号,第二行开头添加空格,最后一行后添加]。转换为标准JSON数组后即可使用本工具正常处理。未来我们计划增加对JSON Lines格式的原生支持。