请问如何把List<List<LinkedHashMap<String, String>>>

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;
	}

}

 

您好,已经解决了吗?