2022-09-03
今天在开发时遇到需要将二维数组的字符串转换成二维数组,或者二维list集合
[[262698, 262699, 262701], [262698, 262699, 262889], [262698, 262699, 263058]]
代码如下:
String str = "[[262698, 262699, 262701], [262698, 262699, 262889], [262698, 262699, 263058]]";
//二维数组字符串转二维数组
Integer[][] cityIds = JSON.parseObject(str, Integer[][].class);
结果:
其实不仅可以转换成对应的二维数组,如果遇到了带方括号的字符串(“[262698, 262699, 262701]”)转换成数组时,一样可以使用这样的方式,就不需要再对前后方括号进行处理后再按逗号分割。
代码如下:
String str = "[262698, 262699, 262701]";
Integer[] integers = JSON.parseObject(str, Integer[].class);
在使用时,突然发现我需要直接使用转换后的list集合,然后指定了泛型是无法指定class,所以需要加一段这个代码来进行指定:new TypeReference
:>>() {}
具体代码如下:
String str = "[[262698, 262699, 262701], [262698, 262699, 262889], [262698, 262699, 263058]]";
//二维数组字符串转二维数组
List<List<Integer>> integers = JSON.parseObject(str, new TypeReference<List<List<Integer>>>() {});
结果:
如果要转换list带泛型的用法一样:new TypeReference
>() {}
代码如下:
String str = "[262698, 262699, 262701]";
List<Integer> integers = JSON.parseObject(str, new TypeReference<List<Integer>>() {});