最近做一个项目的后端开发,由于项目涉及到经纬度的存储,所以前端会传给我各种一维数组和二维数组构成的数据。
存储的时候我是将他转换成字符串进行存储的。
接触到的第一个知识点:数组转换成字符串。
route.setStartPoint(Arrays.toString(startPoint)); //一维数组转字符串 route.setEndPoint(Arrays.toString(endPoint)); route.setPathway(Arrays.deepToString(pathway)); //二维数组转字符串
由于项目中用到了com.alibaba.fastjson,所以我第一次其实用的是JSON.toJSONString()这个方法转换的,结果到数据库一看,数据是这样的,每个元素都分别加了双引号。
改成Arrays的转换方法后,得到了我想要的储存效果:
第二个知识点:数组格式的字符串取出来后如何以数组形式返回给前端
如果以默认的方式,直接返回给前端。它并不是数组的格式,如下图,是用Postman测试返回的数据:
解决办法
我在相应的实体类中声明了一个JSONArray类型的数据
private String pathway; private JSONArray pathwayArr;
在查询的时候,将pathway作了进一步数据处理,并赋值给pathwayArr。
以这种格式返回给前端,成功解决了问题。