java 数组字符串转数组或者list集合

发布时间 2024-01-07 20:51:43作者: 銘聊技术

java 数组字符串转数组,list集合(带泛型),二维数组,或者二维数组集合(带泛型)

今天前端传递过来一个二维数组类型的字符串,我需要把它每个字段导出到excel表中,那我就需要给他转换成二维数组或者list集合

1,转换成二维数组

这是传递过来的二维数组类型的字符串

"[[
			"1",
			"流动资产",
			null,
			"57",
			"流动负债",
			null
		],
		[
			"2",
			"流动资产合计",
			3232323,
			"58",
			"流动负债合计",
			343432323
		],
		[
			"3",
			"货币资金",
			3232222323,
			"59",
			"短期借款",
			null
		]]"

进行转换:

String data = "[["1",	"流动资产",	null,"57","流动负债",null],["2","流动资产合计"	3232323,"58","流动负债合计",343432323],["3","货币资金",3232222323,"59","短期借款",null]]";
//进行转换(这个data里面有子字符串也有数值,所以类型只能用Object,如果你的字符串里全是int类型,那就用Integer)
Object[][] data = JSON.parseObject(textfile,Object[][].class);

现在就是二维数组了,

注:如果是一维数组类型的字符串要转换成一维数组,也是用这个方法

String data = "["1","流动资产",	23,"57","流动负债",null]";
//进行转换(这个data里面有子字符串也有数值,所以类型只能用Object,如果你的字符串里全是int类型,那就用Integer)
Object[] data = JSON.parseObject(textfile,Object[].class);

2,转换成二维list集合

在使用时,如果需要转换成二维list集合的话,那么指定了泛型是无法指定class,所以需要加一段这个代码来进行指定:new TypeReference<List<List<Integer>>>() {}
具体代码如下:

   List<List<Object>> lists = JSON.parseObject(textfile, new TypeReference<List<List<Object>>>() {
        });

注:如果是一维数组类型的字符串要转换成集合,也是这么写

 List<Object> lists = JSON.parseObject(textfile, new TypeReference<List<Object>>() {
        });