1. 编写目的
解决如题问题:springboot解析json数组并转换为链表。
2. 基本思路
主要是使用fastJson提供的JSONArray对象来解决问题。
- 将字符串类型的变量转换成JSONArray对象。
- 调用JSONArray对象的toJavaList方法,转换成链表。
3. 具体代码
当前端往后端提交请求,传递过来一个json格式数组时,后台需要把这个json格式数组解析成链表再进行下一步处理。
比如前端提交的字符串为 [{x:3,y:5},{x:3,y:4}]
其中后端已经编写了一个对应的RoomSeat类,这个类只包含x和y两个属性。生成链表的泛型即是这个类。
我们需要使用fastjson,必须引入相应的依赖。
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.56</version>
</dependency>
核心代码就两行:
// 其中seatJson即是JSON格式数组对应的字符串,如 [{x:3,y:5},{x:3,y:4}]
JSONArray jsonArray = JSONArray.parseArray(seatJson);
List<RoomSeat> roomSeats = jsonArray.toJavaList(RoomSeat.class);
即可完成我们的预期效果:将json格式数组转换成链表。
4. 总结
前后端分离开发时,可能需要提交不确定长度的数组类型数据,不妨采用这种方式完成。
Smileyan 2019年4月29日