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,
}]
}]
}