小工具:Excel表快速转换成JSON字符串

在游戏项目中一般都需要由策划制作大量的游戏内容,其中很大一部分是使用Excel表来制作的。于是程序就需要把Excel文件转换成程序方便读取的格式。

之前项目使用的Excel表导入工具都是通过Office Excel组件来实现数据访问的,效率十分令人不满。一个端游项目一般要上百个表格,手游项目20、30个表格基本也是要的,于是表格导入程序的过程一般要几分钟,项目后期要接近半个小时。

此次分享的小工具,在速度上有质的飞越,比上述方法实现的工具有接近100倍的速度提升:

 

 

支持GUI模式和命令行模式

GUI模式方便预览;而命令行式,方便将多个表格转换工作写成一个批处理文件(.bat或者.sh),一键处理几十个表格。

 

 

 

 

 

1. 首先需要创建一个 Java 类来JSON 文件中的数据结构,可以使用 Jackson 库中的 ObjectMapper 类来实现 JSON 和 Java 类之间的换。 2. 创建一个数据库连接,并使用 JDBC API 执行 SQL 语句来创建格或者清空格,以便将数据导入数据库。 3. 使用 Jackson 库中的 ObjectMapper 类读取 JSON 文件并将其换为 Java 对象,然后将 Java 对象插入到数据库中。 以下是一个简单的示例代码,演示了如何将 JSON 文件导入到 MySQL 数据库中: ```java import java.io.File; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class JsonToDatabase { public static void main(String[] args) { // 1. 创建一个 ObjectMapper 对象 ObjectMapper mapper = new ObjectMapper(); // 2. 连接到数据库 String url = "jdbc:mysql://localhost:3306/mydb"; String user = "root"; String password = "password"; try (Connection conn = DriverManager.getConnection(url, user, password)) { // 3. 创建一个 PreparedStatement 对象来执行 SQL 语句 String sql = "INSERT INTO mytable (name, age, email) VALUES (?, ?, ?)"; PreparedStatement stmt = conn.prepareStatement(sql); // 4. 读取 JSON 文件并将其换为 Java 对象 File jsonFile = new File("data.json"); JsonNode rootNode = mapper.readTree(jsonFile); for (JsonNode node : rootNode) { String name = node.get("name").asText(); int age = node.get("age").asInt(); String email = node.get("email").asText(); // 5. 将 Java 对象插入到数据库中 stmt.setString(1, name); stmt.setInt(2, age); stmt.setString(3, email); stmt.executeUpdate(); } // 6. 关闭 PreparedStatement 对象 stmt.close(); } catch (SQLException | IOException e) { e.printStackTrace(); } } } ``` 在上面的代码中,我们使用了 try-with-resources 语句来自动关闭连接和 PreparedStatement 对象。在读取 JSON 文件时,我们使用了 Jackson 库中的 readTree() 方法来将 JSON 文件换为根节点,然后使用 for-each 循环遍历根节点中的所有节点,并将节点换为 Java 对象。最后,我们使用 PreparedStatement 对象将 Java 对象插入到数据库中。
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值