Java实现省市区数据Json格式的转换

本文讲述了如何使用Java将包含省市区行政规划编码的Excel数据转换为特定规则的Json格式。通过将Excel数据导入MySQL,创建数据库连接,读取数据封装到列表,利用FastJson处理并输出。重点在于使用Map组织数据以符合Json格式要求。
摘要由CSDN通过智能技术生成

问题背景

某天同事给我一份省市区行政规划编码的excel数据,让我整理成对应的一定规则的json格式。原excel数据格式如下,原数据大概2400行左右,这里实例给出50行。
|在这里插入图片描述
要求严格整理成如下json格式:
别人gitHub上js实现过的json格式转换
由于自己目前还不熟悉js代码,所以决定来用Java来实现下。
以下是实现思路和步骤:

1、将excel数据读取到MySQL数据库

这里我使用的navicat操作的,先将excel改为csv格式,然后导入到本地MySQL中:

在这里插入图片描述

2、创建数据库的连接和释放

package Utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Connect {
   
    //都除掉了static修饰
    public  Connection getConnection() throws Exception {
   
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/test";
        String user = "root";
        String pwd = "root";
        Connection connection = DriverManager.getConnection(url, user, pwd);
        return connection;
    }
    public void relase(Connection connection, Statement statement, ResultSet resultSet) throws Exception {
   
        if (resultSet != null) {
   
            resultSet.close();
        }
        if (statement != null) {
   
            statement.close();
        }
        if (connection != null) {
   
            connection.close();
        }
    }
}

3、读取数据分别封装到省、市、区集合list中

1、创建DataObjects,用几个list来装载省市区数据,具体逻辑看代码,写的比较简单,还不规范:
package domain;

import java.util.ArrayList;
import java.util.List;

public class DataObjects {
   
    private int districtNumber;
    private String districtName;
    private int parentDistrictNumber;
    private String parentDistrictName;

    public DataObjects() {
   
    }

    public DataObjects(int districtNumber, String districtName, int parentDistrictNumber, String parentDistrictName) {
   
        this.districtNumber = districtNumber;
        this.districtName = districtName;
        this.parentDistrictNumber = parentDistrictNumber;
        this.parentDistrictName = parentDistrictName;
    }

    public int getDistrictNumber() {
   
        return districtNumber;
    }

    public void setDistrictNumber(int districtNumber) {
   
        this.districtNumber = districtNumber;
    }

    public String getDistrictName() {
   
        return districtName;
    }

    public void setDistrictName(String districtName) {
   
        this.districtName = districtName;
    }

    public int getParentDistrictNumber() {
   
        return parentDistrictNumber;
    }

    public void setParentDistrictNumber(int parentDistrictNumber) {
   
        this.parentDistrictNumber = parentDistrictNumber;
    }

    public String getParentDistrictName() {
   
        return parentDistrictName;
    }

    public void setParentDistrictName(Stri
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值