JAVA实现CSV文件转JSON。

article/2025/3/12 20:59:47

JAVA实现CSV文件转JSON。

CSV文件一般是以逗号为分隔值的文件(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

在这里插入图片描述

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。示例如下

{
"name": "John Doe", 
"age": 18, 
"address":{"country" : "china","zip-code": "10000"}}

JAVA实现CSV转JSON的思路是根据CSV格式特点使用 逗号进行切割,然后使用String对象将分割的对象进行拼接成JSON格式。

import java.io.*;
import java.util.Arrays;
import java.util.List;
// CSV 转 json
// 使用csvToJSon对象的.ConvertToJson方法 带入 csv文件路径及导出路径。
public class CsvToJson {private List<String> stringToList(String s, String sep) {if (s == null) {return null;}String[] parts = s.split(sep);return Arrays.asList(parts);}//将分割的第一行的表头list和后面的值list进行拼接//拼接完后以string返回//示例如{"name" : "kevin","sex" : "man"}private String stringToJson(List<String> header, List<String> lineData) throws Exception {if (header == null || lineData == null) {throw new Exception("输入不能为null。");}else if (header.size() != lineData.size()) {throw new Exception("表头个数和数据列个数不等。");}StringBuilder sBuilder = new StringBuilder();sBuilder.append("{ ");for (int i = 0; i < header.size(); i++) {String mString = String.format("\"%s\": \"%s\"", header.get(i), lineData.get(i));sBuilder.append(mString);if (i != header.size() - 1) {sBuilder.append(", ");}}sBuilder.append(" }");return sBuilder.toString();}public void ConvertToJson(InputStream filePath, OutputStream outPutPath) throws Exception {//创建BufferedReader 来读文件//创建使用BufferedWriter 来写文件InputStreamReader isr = new InputStreamReader(filePath,"utf-8");BufferedReader reader = new BufferedReader(isr);OutputStreamWriter osw = new OutputStreamWriter(outPutPath,"utf-8");BufferedWriter writer = new BufferedWriter(osw);try {String sep = ",";//将csv表格第一行构建成stringString headerStr = reader.readLine();if (headerStr.trim().isEmpty()) {System.out.println("表格头不能为空");return;}//将String字符串通过split(",")csv是以,作分隔符// 进行切割输出成ListList<String> header = stringToList(headerStr, sep);String line;int lineCnt = 1;while ((line = reader.readLine()) != null) {if (line.trim().isEmpty()) {System.out.println("第" + lineCnt + "行为空,已跳过");continue;}List<String> lineData = stringToList(line, sep);if (lineData.size() != header.size()) {String mString = String.format("第%d行数据列和表头列个数不一致\r\n%s", lineCnt, line);System.err.println(mString);break;}String jsonStr = stringToJson(header, lineData);writer.write(jsonStr);writer.write("\r\n");lineCnt++;}} finally {if (reader != null) {reader.close();}if (writer != null) {writer.close();}}}public static void main(String[] args) throws Exception {//使用Java IO流操作打开/导出文件InputStream filePath = new FileInputStream("/Users/Desktop/dwa/11111.csv");OutputStream outPutPath = new FileOutputStream("/Users/Desktop/2222.json");CsvToJson csvToJSon = new CsvToJson();csvToJSon.ConvertToJson(filePath, outPutPath);System.out.println("转换完成");}}

http://chatgpt.dhexx.cn/article/tZpMBdCQ.shtml

相关文章

在Django实战中实用的数据格式转换【csv转json和json转csv】

文章目录 题目csv转jsonjson转csv 题目 在Django实战中实用的数据格式转换 csv转json 步骤&#xff1a; 使用pandas读取csv文件&#xff0c;index_colFalse第一列为index值 data pd.read_csv(path, index_colFalse)用一个dict()读取data中的数据 i.e. 假设你的csv文件里有…

【python】json转csv

需求&#xff1a;当同名文件夹下有多个json文件&#xff0c;批量转换到一个csv中 json中包含多层结构 ​ import osimport pandas as pd import json #同一个目录下读取多个json文件转csv文件def json_to_csv():dir"/Users/cecilia/school/"filesos.listdir(dir)data…

在线JSON转CSV格式文件工具

在线JSON转CSV格式文件工具 在线JSON转CSV格式文件工具 JSON&#xff08;JavaScript Object Notation, /ˈdʒeɪsən/&#xff09;是由道格拉斯克罗克福特构想和设计的一种轻量级资料交换格式。其内容由属性和值所组成&#xff0c;因此也有易于阅读和处理的优势。 CSV:逗号分…

在线JSON转CSV工具

在线JSON转CSV工具 在线JSON转CSV工具 JSON To CSV Converter 帮助你在线将 JSON 转换为 CSV。 JSON To CSV Converter 帮助你在线将 JSON 转换为 CSV。 JSON To CSV Converter 帮助你在线将 JSON 转换为 CSV。 https://toolgg.com/json-to-csv.html

如何使用python把json文件转换为csv文件

文章目录 了解json整体格式转换格式提取key和value使用pandas写入csv 了解json整体格式 这里有一段json格式的文件&#xff0c;存着全球陆地和海洋的每年异常气温(这里只选了一部分)&#xff1a;global_temperature.json {"description": {"title": &quo…

json转csv

json转csv 原数据完整代码代码解读后续 第一次遇到原本的json格式数据&#xff0c;但是ArcGIS软件不认json&#xff0c;于是需要转成csv格式。本篇将讲解如何读取本地json格式数据&#xff0c;并转为csv格式的。 原数据 先来看一看原来数据长什么模样 json格式在我电脑里面长…

JSON格式的文件转csv

这里处理的json文件没有后缀名&#xff0c;下面是处理之前的文件内容 处理之后的csv文件其实就是正常的excel文件&#xff0c;不一样的是有乱码&#xff0c;因为脚本里面使用的是utf-8编码&#xff0c;这里给出乱码解决方案 使用记事本打开csv&#xff0c;然后另存为选择编码格…

【Python小程序】第3讲:如何将json数据转换成csv格式?

机器学习训练营——机器学习爱好者的自由交流空间&#xff08;入群联系qq&#xff1a;2279055353&#xff09; JSON介绍 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式&#xff0c;方便人们阅读和编写。任何支持的数据类型都可以通过json来表示&#xff0c;例如…

UML 包图

概述 包图是 UML 一种用以显示包和包之间的依赖关系的结构性图表。 包图是一种结构图&#xff0c;显示了中大型项目中模型元素的排列和组织。包图可以显示子系统或模块之间的结构和依赖性&#xff0c;并显示系统的不同视图。 目的 包图图用于构造高级系统元素。软件包用于组织…

(转载)UML各种图总结

UML&#xff08;Unified Modeling Language&#xff09;是一种统一建模语言&#xff0c;为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图包图的基本概念进行介绍以及各个图的使用场景。 一、基本概念   如下图所示&#xff0c;UM…

【UML】------图

一、引言 在上一篇博客中给大家介绍了UML中的视图&#xff0c;在结尾的时候根据自己的理解有把图和视图之间的包含关系总结了一下&#xff0c;那么在这篇博客中我将结合实例来介绍UML中的图。 二、基本内容 1、用例图&#xff08;Use Case Diagram&#xff09; &#xff08;1&a…

[跟我学UML] UML包图中的包引入和包合并

缩略语 UIS UML Infrastructure Specification UML基础结构规范 UML Unifed Modeling Language 统一建模语言 USS UML Superstructure Specification UML上层结构规范 参考资料 《UML Infrastructure Specification, v2.2》 《UML Superstructure Spec…

[完全免费] 在线UML Package Diagram 包图工具 - 教程第4部分

封装图显示了中型到大型项目中模型元素的布置和组织&#xff0c;可用于显示子系统或模块之间的结构和相关性。 (一键即时打开使用) 什么是UML中的包图&#xff1f; 大系统提供特殊挑战。为大型系统绘制班级模型&#xff0c;而且它太大而难以理解。类之间有太多的联系要理解。处…

UML总结—包图(Package Diagram)

一、什么是包 在面向对象的软件开发过程中&#xff0c;类显然是构建整个系统的基本构造块。但是对于庞大的应用系统而言&#xff0c;包含的类是成百上千的&#xff0c;再加上其间“阡陌纵横”的关联关系&#xff0c;多重性等&#xff0c;必然大大超出了人们可以处理的复杂度。…

UML- 包图

前言 感觉包图萌萌哒&#xff0c;不知道你们是什么样的感觉呢~ 正文 what 1、包图是由包和包之间的关系构成的。 2、逻辑上把复杂的图模块化。 who 阶段&#xff1a;可行性分析&#xff0c;概要设计。 作用 1、维护和控制系统总体结构的重要建模工具。 元素 类、接口…

UML之包图(Package Diagram)

前言 包图&#xff0c;一个包字就体现出了它的包容性一定是非强大&#xff0c;在具体了解之后&#xff0c;感觉包图真是如此。 正文 概念 一个”包图”可以是任何一种的UML图组成&#xff0c;通常是UML用例图或UML类图。 包是一个UML结构&#xff0c;它使得你能够把诸如用例…

写在MyUML发布090515_2版之际

前段时间针对一些问题&#xff0c;做了一次校正。本来准备等待我的代码生成引擎写好后一并发布的&#xff0c;但是我想&#xff0c;要完善代码生成引擎需要一段不短的时间&#xff08;我自己也估计不出来&#xff09;&#xff0c;所以昨天将更正后的版本发布了。 对软件添加的内…

【UML学习】--包图

【前言】 包图是怎么来的&#xff1f; 在面向对象开发的概念里&#xff0c;类是构造整个系统的基本构造块。但是一个庞大的系统中包含的类是成百上千个的&#xff0c;而且这些类之间的关系也是阡陌交错&#xff0c;所以处理起来十分复杂&#xff0c;这时候就引入了“包”这个概…

UML—Package Diagram

随着程序软件越来越复杂&#xff0c;一个程序往往包含了数百个类。管理这些类的有效方法就是将类进行分组&#xff0c;将功能相似或相关的类组织在一起。包图是一种维护和描述系统总体结构模型的重要建模工具 包的构成&#xff1a; 1.包的名称 2.包的元素 包自身所拥有的元素…

【UML】9种图+包图

导读&#xff1a;在UML的学习中&#xff0c;介绍了9种图&#xff0c;外加一个包图。这9种图和4大关系&#xff0c;可以说是UML的一个核心内容。我根据自己的笔记&#xff0c;以及查阅的一些资料&#xff0c;对这9种图和包图&#xff0c;做一个总结。 一、基本定义 1、1 总体…