读取.txt文件中Json数据及Json格式数据处理写入数据库(亲测有效)

1 篇文章 0 订阅

1、前端代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p>读取.txt文件中Json数据写入数据库(格式1)</p>
    <form enctype="multipart/form-data" method="post" action="../Json/JsonImport">
        <input type="file" name="file" title="点击选择文件" multiple="" accept="*/*" class="form-control"/>
        <input type="submit" class="btn btn-primary">
    </form><br>

    <p>读取.txt文件中Json数据写入数据库(格式2)</p>
    <form enctype="multipart/form-data" method="post" action="../Json/JsonImport2">
        <input type="file" name="file" title="点击选择文件" multiple="" accept="*/*" class="form-control"/>
        <input type="submit" class="btn btn-primary">
    </form><br>
</body>
</html>

2、Controller层

package com.southgis.imap.maintain.Controller.DataImportOrExport;

import com.southgis.imap.maintain.Service.DataImportOrExport.JsonDataImportService;
import com.southgis.imap.maintain.Utils.ResponseResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

/**
 * 读取.txt文件中Json数据写入数据库
 */
@RestController
@RequestMapping("/Json")
public class JsonDataImportController {

    @Autowired
    private static JsonDataImportService jsonDataImportService;

	//数据格式1
    @RequestMapping("/JsonImport")
    public static ResponseResult JsonImport(MultipartFile file) {
        jsonDataImportService.JsonImport(file);
        return new ResponseResult("success");
    }

    //数据格式2
    @RequestMapping("/JsonImport2")
    public static ResponseResult JsonImport2(MultipartFile file){
        JsonDataImportService.JsonImport2(file);
        return new ResponseResult("success");
    }
}

3、Service层

package com.southgis.imap.maintain.Service.DataImportOrExport;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.southgis.imap.maintain.Utils.ResponseResult;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;


/**
 * 读取.txt文件中Json数据写入数据库
 *
 */

@Service
@Component
public class JsonDataImportService {


	//数据格式1
    public static ResponseResult JsonImport(MultipartFile file) {
        try {
            InputStream in = file.getInputStream();
            byte[] bys = new byte[1024];
            int len = 0;
            String line = "";

            while((len = in.read(bys)) != -1){
                line += new String(bys,0,len);
            }
            JSONObject parseObject = JSONObject.parseObject(line);
            JSONArray feedsArray = parseObject.getJSONArray("items");
            System.out.println(feedsArray);
            for(int i = 0;i < feedsArray.size();i++){
                JSONObject rootObject = feedsArray.getJSONObject(i);
                String area = rootObject.getString("area");
                String houseId = rootObject.getString("houseId");
                String unitNo = rootObject.getString("addTime");
                String modelId = rootObject.getString("modelId");
                String totalPrice = rootObject.getString("totalPrice");
                String buildingUnitNo = rootObject.getString("buildingUnitNo");
                String priceType = rootObject.getString("priceType");
                String floorId = rootObject.getString("floorId");
                String statusId = rootObject.getString("statusId");
                String preMortgage = rootObject.getString("preMortgage");
                String licenceId = rootObject.getString("licenceId");
                String buildingNo = rootObject.getString("buildingNo");
                String dataTime = rootObject.getString("dataTime");
                String price = rootObject.getString("price");
                String preSeal = rootObject.getString("preSeal");
                String houseNo = rootObject.getString("houseNo");
                String houseProperty = rootObject.getString("houseProperty");
                String floorNo = rootObject.getString("floorNo");
                String limitSale = rootObject.getString("limitSale");
                String houseNum = rootObject.getString("houseNum");
                String status = rootObject.getString("status");
                String houseUse = rootObject.getString("houseUse");
            }
//            Map stringToMap =  JSONObject.parseObject(line);
//            String content = stringToMap.get("items").toString();
//            System.out.println(content);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return new ResponseResult("success");
    }
  
  	//数据格式2
    public static ResponseResult JsonImport2(MultipartFile file){
        try{
            InputStream in = file.getInputStream();
            byte[] bys = new byte[1024];
            int len = 0;
            String line = "";
            while ((len = in.read(bys)) != -1){
                line += new String(bys,0,len);
            }
            JSONObject paraseObject = JSONObject.parseObject(line);
            JSONArray feedArray = paraseObject.getJSONArray("list");
            for(int i = 0;i < feedArray.size();i++){
                JSONObject rootObject = feedArray.getJSONObject(i);
                String floorNo = rootObject.getString("floorNo");
                JSONArray dataObject = rootObject.getJSONArray("list");
                for(int j = 0;j < dataObject.size();j++){
                    JSONObject returnObject = dataObject.getJSONObject(j);
                    String houseId = returnObject.getString("houseId");
                    String floorId = returnObject.getString("floorId");
                    String licenceId = returnObject.getString("licenceId");
                    String modelId = returnObject.getString("modelId");
                    String buildingNo = returnObject.getString("buildingNo");
                    String unitNo = returnObject.getString("unitNo");
                    String buildingUnitNo = returnObject.getString("floorNo");
                    System.out.println(floorNo+"=="+houseId+"=="+floorId+"=="+licenceId+"=="+modelId+"=="+buildingNo+"=="+buildingNo+"=="+unitNo+"=="+buildingUnitNo);
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return new ResponseResult("success");
    }

}

(1)数据格式1:
{
“page”: {
“page”: 1,
“pageSize”: 15,
“pageCount”: 3,
“rowCount”: 37,
“first”: 0,
“last”: 3,
“previous”: 0,
“next”: 2,
“urlPrefix”: null,
“urlSuffix”: null
},
“items”: [{
“houseId”: 666190,
“floorId”: 5026,
“licenceId”: 0,
“modelId”: 0,
“buildingNo”: “C1栋住宅楼”,
“unitNo”: 1,
“buildingUnitNo”: “C1栋住宅楼1”,
“floorNo”: 1,
“houseNo”: “01”,
“houseNum”: 1,
“houseModelNo”: null,
“area”: 18.4,
“priceType”: 1,
“price”: 16000.0,
“totalPrice”: 294400.0,
“statusId”: 1,
“status”: “可售”,
“houseUse”: “车库”,
“houseProperty”: “市场化商品房”,
“preSeal”: 0,
“preMortgage”: 0,
“limitSale”: 0,
“addTime”: “2020-05-27T03:25:07.000+0000”,
“dataTime”: “2020-05-27T03:25:07.000+0000”
}, {
“houseId”: 666193,
“floorId”: 5026,
“licenceId”: 0,
“modelId”: 0,
“buildingNo”: “C1栋住宅楼”,
“unitNo”: 1,
“buildingUnitNo”: “C1栋住宅楼1”,
“floorNo”: 1,
“houseNo”: “02”,
“houseNum”: 2,
“houseModelNo”: null,
“area”: 17.28,
“priceType”: 1,
“price”: 16000.0,
“totalPrice”: 276480.0,
“statusId”: 1,
“status”: “可售”,
“houseUse”: “车库”,
“houseProperty”: “市场化商品房”,
“preSeal”: 0,
“preMortgage”: 0,
“limitSale”: 0,
“addTime”: “2020-05-27T03:25:07.000+0000”,
“dataTime”: “2020-05-27T03:25:07.000+0000”
}]
}
(2)数据格式2
{
“maxHouseNum”: 15,
“maxFloorNo”: 14,
“list”: [{
“floorNo”: 1,
“list”: [{
“houseId”: 665491,
“floorId”: 5026,
“licenceId”: 0,
“modelId”: 0,
“buildingNo”: “D栋住宅楼”,
“unitNo”: 1,
“buildingUnitNo”: “D栋住宅楼1”,
“floorNo”: 1,
}, {
“houseId”: 665494,
“floorId”: 5026,
“licenceId”: 0,
“modelId”: 0,
“buildingNo”: “D栋住宅楼”,
“unitNo”: 1,
“buildingUnitNo”: “D栋住宅楼1”,
“floorNo”: 1,
},{
“houseId”: 665494,
“floorId”: 5026,
“licenceId”: 0,
“modelId”: 0,
“buildingNo”: “D栋住宅楼”,
“unitNo”: 1,
“buildingUnitNo”: “D栋住宅楼1”,
“floorNo”: 1,
}]
},{
“floorNo”: 2,
“list”: [{
“houseId”: 665491,
“floorId”: 5026,
“licenceId”: 0,
“modelId”: 0,
“buildingNo”: “D栋住宅楼”,
“unitNo”: 1,
“buildingUnitNo”: “D栋住宅楼1”,
“floorNo”: 1,
}, {
“houseId”: 665494,
“floorId”: 5026,
“licenceId”: 0,
“modelId”: 0,
“buildingNo”: “D栋住宅楼”,
“unitNo”: 1,
“buildingUnitNo”: “D栋住宅楼1”,
“floorNo”: 1,
}]
}]
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值