List<List<LinkedHashMap<String, String>>> 这样的数据如何提取出来存放到数据库
以下这样的一个数据格式,我需要怎么样才可以提取出来然后保存到数据库里面呢
[[{0=20080006, 1=2020-08-15, 2=血清, 3=中枢4项, 4=陈玉仪, 5=女, 6=29, 7=脱髓鞘性脑病?, 8=P944503, 9=广东省人民医院, 10=神经内科二区, 11=, 12=15170159, 13=赖晓毅, 14=2020-08-14, 15=2020-08-14, 16=2020-08-15, 17=79530@qq.com, 18=SF1193242432617, 19=单周圆}, {0=20080007, 1=2020-08-15, 2=脑脊液, 3=自免8项, 4=陈玉仪, 5=女, 6=29, 7=脱髓鞘性脑病?, 8=P944503, 9=广东省人民医院, 10=神经内科二区, 11=, 12=15170159, 13=赖晓毅, 14=2020-08-14, 15=2020-08-14, 16=2020-08-15, 17=792830@qq.com, 18=SF1193242432617, 19=单周圆}, {0=20080008, 1=2020-08-15, 2=脑脊液, 3=中枢4项, 4=陈玉仪, 5=女, 6=29, 7=脱髓鞘性脑病?, 8=P944503, 9=广东省人民医院, 10=神经内科二区, 11=, 12=159170159, 13=赖晓毅, 14=2020-08-14, 15=2020-08-14, 16=2020-08-15, 17=795530@qq.com, 18=SF10922301418, 19=周健聪}, {0=20080009, 1=2020-08-15, 2=脑脊液, 3=副瘤11项, 4=陈旭东, 5=男, 6=49, 7=副瘤综合征待排, 8=, 9=佛山市第一人民医院, 10=神经内科, 11=, 12=13922909, 13=陈静娟, 14=2020-08-14, 15=2020-08-14, 16=2020-08-17, 17=5984126@qq.com, 18=SF10922301418, 19=周健聪}]]
数据库格式
//对应0
@ApiModelProperty(hidden = true)
@Column(name="laboratoryNumber",columnDefinition="varchar(100) comment ''")
private String laboratoryNumber;
//对应1
@ApiModelProperty(hidden = true)
@Column(name="samplingTime",columnDefinition="varchar(100) comment ''")
private String samplingTime;
//对应2
@ApiModelProperty(hidden = true)
@Column(name="typeInspection",columnDefinition="varchar(100) comment ''")
private String typeInspection;
//对应3
@ApiModelProperty(hidden = true)
@Column(name="inspectionItems",columnDefinition="varchar(100) comment ''")
private String inspectionItems;
//对应4
@ApiModelProperty(hidden = true)
@Column(name="fullName",columnDefinition="varchar(100) comment ''")
private String fullName;
//对应5
@ApiModelProperty(hidden = true)
@Column(name="sex",columnDefinition="varchar(10) comment ''")
private String sex;
//对应6
@ApiModelProperty(hidden = true)
@Column(name="age",columnDefinition="varchar(10) comment ''")
private String age;
//对应7
@ApiModelProperty(hidden = true)
@Column(name="clinicalDiagnosis",columnDefinition="varchar(255) comment ''")
private String clinicalDiagnosis;
//对应8
@ApiModelProperty(hidden = true)
@Column(name="inpatientNumber",columnDefinition="varchar(100) comment ''")
private String inpatientNumber;
//对应9
@ApiModelProperty(hidden = true)
@Column(name="sendingHospital",columnDefinition="varchar(125) comment ''")
private String sendingHospital;
//对应10
@ApiModelProperty(hidden = true)
@Column(name="department",columnDefinition="varchar(50) comment ''")
private String department;
//对应11
@ApiModelProperty(hidden = true)
@Column(name="specimenBarcode",columnDefinition="varchar(100) comment ''")
private String specimenBarcode;
//对应12
@ApiModelProperty(hidden = true)
@Column(name="telephone",columnDefinition="varchar(50) comment ''")
private String telephone;
//对应13
@ApiModelProperty(hidden = true)
@Column(name="applyingDoctor",columnDefinition="varchar(50) comment ''")
private String applyingDoctor ;
//对应14
@ApiModelProperty(hidden = true)
@Column(name="sampleTime",columnDefinition="varchar(50) comment ''")
private String sampleTime;
//对应15
@ApiModelProperty(hidden = true)
@Column(name="sampleDeliveryTime",columnDefinition="varchar(50) comment ''")
private String sampleDeliveryTime;
//对应16
@ApiModelProperty(hidden = true)
@Column(name="issuingTime",columnDefinition="varchar(50) comment ''")
private String issuingTime;
//对应17
@ApiModelProperty(hidden = true)
@Column(name="mailbox",columnDefinition="varchar(50) comment ''")
private String mailbox;
//对应18
@ApiModelProperty(hidden = true)
@Column(name="courierNumber",columnDefinition="varchar(50) comment ''")
private String courierNumber;
//19
@ApiModelProperty(hidden = true)
@Column(name="salesman",columnDefinition="varchar(50) comment ''")
private String salesman;
TestData.java
package com.test.helloworld.temp;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
public class TestData {
public static void main(String[] args) {
String[] nameList = {"laboratoryNumber", "samplingTime", "typeInspection", "inspectionItems", "fullName", "sex", "age", "clinicalDiagnosis", "inpatientNumber", "sendingHospital", "department", "specimenBarcode", "telephone", "applyingDoctor", "sampleTime", "sampleDeliveryTime", "issuingTime", "mailbox", "courierNumber", "salesman"};
String srcData = "[[{0=20080006, 1=2020-08-15, 2=血清, 3=中枢4项, 4=陈玉仪, 5=女, 6=29, 7=脱髓鞘性脑病?, 8=P944503, 9=广东省人民医院, 10=神经内科二区, 11=, 12=15170159, 13=赖晓毅, 14=2020-08-14, 15=2020-08-14, 16=2020-08-15, 17=79530@qq.com, 18=SF1193242432617, 19=单周圆}, {0=20080007, 1=2020-08-15, 2=脑脊液, 3=自免8项, 4=陈玉仪, 5=女, 6=29, 7=脱髓鞘性脑病?, 8=P944503, 9=广东省人民医院, 10=神经内科二区, 11=, 12=15170159, 13=赖晓毅, 14=2020-08-14, 15=2020-08-14, 16=2020-08-15, 17=792830@qq.com, 18=SF1193242432617, 19=单周圆}, {0=20080008, 1=2020-08-15, 2=脑脊液, 3=中枢4项, 4=陈玉仪, 5=女, 6=29, 7=脱髓鞘性脑病?, 8=P944503, 9=广东省人民医院, 10=神经内科二区, 11=, 12=159170159, 13=赖晓毅, 14=2020-08-14, 15=2020-08-14, 16=2020-08-15, 17=795530@qq.com, 18=SF10922301418, 19=周健聪}, {0=20080009, 1=2020-08-15, 2=脑脊液, 3=副瘤11项, 4=陈旭东, 5=男, 6=49, 7=副瘤综合征待排, 8=, 9=佛山市第一人民医院, 10=神经内科, 11=, 12=13922909, 13=陈静娟, 14=2020-08-14, 15=2020-08-14, 16=2020-08-17, 17=5984126@qq.com, 18=SF10922301418, 19=周健聪}]]";
List<TestEntity> entityResult = analyze(srcData, nameList);
System.out.println(entityResult);
}
public static List<TestEntity> analyze(String srcData, String[] nameList) {
List<TestEntity> retValue = new ArrayList<TestEntity>();
int subitemCount = nameList.length;
String destData = srcData.substring(3, srcData.length() - 3);
String[] dataList = destData.split("\\}, \\{");
for (String item : dataList) {
String[] itemList = item.split(", ");
if (itemList.length != subitemCount) {
System.out.println("item skip: " + item);
continue;
} else {
List<String> subitemValueList = new ArrayList<String>();
for (String subitem : itemList) {
String[] x = subitem.split("=");
if (x.length > 1) {
subitemValueList.add(x[1]);
} else {
subitemValueList.add("");
}
}
TestEntity newEntity = new TestEntity(subitemValueList);
retValue.add(newEntity);
}
}
return retValue;
}
}
TestEntity.java:
package com.test.helloworld.temp;
import java.util.List;
import javax.persistence.Column;
public class TestEntity {
// 对应0
@ApiModelProperty(hidden = true)
@Column(name = "laboratoryNumber", columnDefinition = "varchar(100) comment ''")
private String laboratoryNumber;
// 对应1
@ApiModelProperty(hidden = true)
@Column(name = "samplingTime", columnDefinition = "varchar(100) comment ''")
private String samplingTime;
// 对应2
@ApiModelProperty(hidden = true)
@Column(name = "typeInspection", columnDefinition = "varchar(100) comment ''")
private String typeInspection;
// 对应3
@ApiModelProperty(hidden = true)
@Column(name = "inspectionItems", columnDefinition = "varchar(100) comment ''")
private String inspectionItems;
// 对应4
@ApiModelProperty(hidden = true)
@Column(name = "fullName", columnDefinition = "varchar(100) comment ''")
private String fullName;
// 对应5
@ApiModelProperty(hidden = true)
@Column(name = "sex", columnDefinition = "varchar(10) comment ''")
private String sex;
// 对应6
@ApiModelProperty(hidden = true)
@Column(name = "age", columnDefinition = "varchar(10) comment ''")
private String age;
// 对应7
@ApiModelProperty(hidden = true)
@Column(name = "clinicalDiagnosis", columnDefinition = "varchar(255) comment ''")
private String clinicalDiagnosis;
// 对应8
@ApiModelProperty(hidden = true)
@Column(name = "inpatientNumber", columnDefinition = "varchar(100) comment ''")
private String inpatientNumber;
// 对应9
@ApiModelProperty(hidden = true)
@Column(name = "sendingHospital", columnDefinition = "varchar(125) comment ''")
private String sendingHospital;
// 对应10
@ApiModelProperty(hidden = true)
@Column(name = "department", columnDefinition = "varchar(50) comment ''")
private String department;
// 对应11
@ApiModelProperty(hidden = true)
@Column(name = "specimenBarcode", columnDefinition = "varchar(100) comment ''")
private String specimenBarcode;
// 对应12
@ApiModelProperty(hidden = true)
@Column(name = "telephone", columnDefinition = "varchar(50) comment ''")
private String telephone;
// 对应13
@ApiModelProperty(hidden = true)
@Column(name = "applyingDoctor", columnDefinition = "varchar(50) comment ''")
private String applyingDoctor;
// 对应14
@ApiModelProperty(hidden = true)
@Column(name = "sampleTime", columnDefinition = "varchar(50) comment ''")
private String sampleTime;
// 对应15
@ApiModelProperty(hidden = true)
@Column(name = "sampleDeliveryTime", columnDefinition = "varchar(50) comment ''")
private String sampleDeliveryTime;
// 对应16
@ApiModelProperty(hidden = true)
@Column(name = "issuingTime", columnDefinition = "varchar(50) comment ''")
private String issuingTime;
// 对应17
@ApiModelProperty(hidden = true)
@Column(name = "mailbox", columnDefinition = "varchar(50) comment ''")
private String mailbox;
// 对应18
@ApiModelProperty(hidden = true)
@Column(name = "courierNumber", columnDefinition = "varchar(50) comment ''")
private String courierNumber;
// 19
@ApiModelProperty(hidden = true)
@Column(name = "salesman", columnDefinition = "varchar(50) comment ''")
private String salesman;
public TestEntity() {
// TODO Auto-generated constructor stub
}
public TestEntity(List<String> subitemValueList) {
laboratoryNumber = subitemValueList.get(0);
samplingTime = subitemValueList.get(1);
typeInspection = subitemValueList.get(2);
inspectionItems = subitemValueList.get(3);
fullName = subitemValueList.get(4);
sex = subitemValueList.get(5);
age = subitemValueList.get(6);
clinicalDiagnosis = subitemValueList.get(7);
inpatientNumber = subitemValueList.get(8);
sendingHospital = subitemValueList.get(9);
department = subitemValueList.get(10);
specimenBarcode = subitemValueList.get(11);
telephone = subitemValueList.get(12);
applyingDoctor = subitemValueList.get(13);
sampleTime = subitemValueList.get(14);
sampleDeliveryTime = subitemValueList.get(15);
issuingTime = subitemValueList.get(16);
mailbox = subitemValueList.get(17);
courierNumber = subitemValueList.get(18);
salesman = subitemValueList.get(19);
}
@Override
public String toString() {
StringBuilder buff = new StringBuilder();
buff.append("laboratoryNumber=").append(laboratoryNumber).append(", ")
.append("samplingTime=").append(samplingTime).append(", ")
.append("typeInspection=").append(typeInspection).append(", ")
.append("inspectionItems=").append(inspectionItems).append(", ")
.append("fullName=").append(fullName).append(", ")
.append("sex=").append(sex).append(", ")
.append("age=").append(age).append(", ")
.append("clinicalDiagnosis=").append(clinicalDiagnosis).append(", ")
.append("inpatientNumber=").append(inpatientNumber).append(", ")
.append("sendingHospital=").append(sendingHospital).append(", ")
.append("department=").append(department).append(", ")
.append("specimenBarcode=").append(specimenBarcode).append(", ")
.append("telephone=").append(telephone).append(", ")
.append("applyingDoctor=").append(applyingDoctor).append(", ")
.append("sampleTime=").append(sampleTime).append(", ")
.append("sampleDeliveryTime=").append(sampleDeliveryTime).append(", ")
.append("issuingTime=").append(issuingTime).append(", ")
.append("mailbox=").append(mailbox).append(", ")
.append("courierNumber=").append(courierNumber).append(", ")
.append("salesman=").append(salesman);
return buff.toString();
}
}
通过TestEntity保存到数据库即可
这个数据格式外围是不是多加了一层 [ ] ?json格式化后就是一个数组对象,直接用list接收,然后存list中的对象到数据库就好
数据格式必须要这样套多个list ,请问如何把数据提取出来存到数据库中呢
不能换种数据格式嘛?嵌套这么多层 技术解决比较复杂 就从设计入手
不知道符合不符合你的要求
public static void main(String[] args) {
List<List<LinkedHashMap<String, String>>> param = new ArrayList();
if(!param.isEmpty()) {
List<Data> dataArray = new ArrayList<Data>();
for (List<LinkedHashMap<String, String>> list : param) {
for (LinkedHashMap<String, String> linkedMap : list) {
if(!linkedMap.isEmpty()) {
Data d = new Data();
d.setLaboratoryNumber(linkedMap.get(0))
.setSamplingTime(linkedMap.get(1))
.setTypeInspection(linkedMap.get(2))
.setInspectionItems(linkedMap.get(3));
dataArray.add(d);
}
}
}
// 你要的数据集合
System.out.println(dataArray);
}
}
大哥试了下你的方法读取出来的数据是空的
我这个是没有数据的,我是按你给的数据格式写的,你把你的数据放入param中在解析
注意数据放入对象的时候顺序问题,因为你这个是固定顺序的
这格式绝了。
package com.test.helloworld.temp;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
public class TestData {
public static void main(String[] args) {
String[] nameList = {"laboratoryNumber", "samplingTime", "typeInspection", "inspectionItems", "fullName", "sex", "age", "clinicalDiagnosis", "inpatientNumber", "sendingHospital", "department", "specimenBarcode", "telephone", "applyingDoctor", "sampleTime", "sampleDeliveryTime", "issuingTime", "mailbox", "courierNumber", "salesman"};
String srcData = "[[{0=20080006, 1=2020-08-15, 2=血清, 3=中枢4项, 4=陈玉仪, 5=女, 6=29, 7=脱髓鞘性脑病?, 8=P944503, 9=广东省人民医院, 10=神经内科二区, 11=, 12=15170159, 13=赖晓毅, 14=2020-08-14, 15=2020-08-14, 16=2020-08-15, 17=79530@qq.com, 18=SF1193242432617, 19=单周圆}, {0=20080007, 1=2020-08-15, 2=脑脊液, 3=自免8项, 4=陈玉仪, 5=女, 6=29, 7=脱髓鞘性脑病?, 8=P944503, 9=广东省人民医院, 10=神经内科二区, 11=, 12=15170159, 13=赖晓毅, 14=2020-08-14, 15=2020-08-14, 16=2020-08-15, 17=792830@qq.com, 18=SF1193242432617, 19=单周圆}, {0=20080008, 1=2020-08-15, 2=脑脊液, 3=中枢4项, 4=陈玉仪, 5=女, 6=29, 7=脱髓鞘性脑病?, 8=P944503, 9=广东省人民医院, 10=神经内科二区, 11=, 12=159170159, 13=赖晓毅, 14=2020-08-14, 15=2020-08-14, 16=2020-08-15, 17=795530@qq.com, 18=SF10922301418, 19=周健聪}, {0=20080009, 1=2020-08-15, 2=脑脊液, 3=副瘤11项, 4=陈旭东, 5=男, 6=49, 7=副瘤综合征待排, 8=, 9=佛山市第一人民医院, 10=神经内科, 11=, 12=13922909, 13=陈静娟, 14=2020-08-14, 15=2020-08-14, 16=2020-08-17, 17=5984126@qq.com, 18=SF10922301418, 19=周健聪}]]";
List<List<LinkedHashMap<String, String>>> result = analyze(srcData, nameList);
System.out.println(result);
}
public static List<List<LinkedHashMap<String, String>>> analyze(String srcData, String[] nameList) {
List<LinkedHashMap<String, String>> retValue = new ArrayList<LinkedHashMap<String, String>>();
int subitemCount = nameList.length;
String destData = srcData.substring(3, srcData.length() - 3);
String[] dataList = destData.split("\\}, \\{");
for (String item : dataList) {
String[] itemList = item.split(", ");
if (itemList.length != subitemCount) {
System.out.println("item skip: " + item);
continue;
} else {
List<String> subitemValueList = new ArrayList<String>();
for (String subitem : itemList) {
String[] x = subitem.split("=");
if (x.length > 1) {
subitemValueList.add(x[1]);
} else {
subitemValueList.add("");
}
}
LinkedHashMap<String, String> itemMap = new LinkedHashMap<String, String>();
for (int i = 0; i < subitemCount; i++) {
itemMap.put(nameList[i], subitemValueList.get(i));
}
retValue.add(itemMap);
}
}
List<List<LinkedHashMap<String, String>>> result = new ArrayList<List<LinkedHashMap<String, String>>>();
result.add(retValue);
return result;
}
}
您好,已经解决了吗?