首页 技术 正文
技术 2022年11月6日
0 收藏 951 点赞 718 浏览 2293 个字

原因:

前端传递的数组过于复杂,倒是出现这种问题,前端采用vue axios,发送请求,后端java接收代码,实现前后端分离

后端就收fastjson接收json,进行业务处理,后端Controller状况:

 /**
*
* <p>
* <p>添加订单
*
* @return Object
*/
@ResponseBody
@RequestMapping(value = "/addOrder", //
method = RequestMethod.POST)
public Object addOrder(@RequestBody BaseSingleList baseSingleList) { return orderService.addOrder(baseSingleList); }

前端发送json样式

 {
"singleOrderList":[
{
"orderName":"唐1",
"orderPhone":"13245124512",
"contact":"送",
"telephony":"7845120231111",
"provinceId":31,
"cityId":3101,
"regionId":310108,
"address":"默认添加唐",
"userId":"c6f53705451b497580ef093c0ff5",
"serieId":"1",
"trueTime":"2018-04-27",
"overTime":"2019-04-27",
"monthlyRent":6000,
"dateCount":12,
"packageId":"3e449fb4b4a489fce1475c4577fb6",
"applicationArea":"ssswww",
"total":"219000",
"ModularIdNum":[
{
"itemId":"9b744dc99e2904d96ab1af5",
"modularNum":3
}
]
},
{
"orderName":"唐1",
"orderPhone":"13245124512",
"contact":"送",
"telephony":"7845120231111",
"provinceId":31,
"cityId":3101,
"regionId":310108,
"address":"默认添加唐",
"userId":"b4f13b97580ef093c0ff5",
"serieId":"1",
"trueTime":"2018-04-27",
"overTime":"2019-04-27",
"monthlyRent":6000,
"dateCount":12,
"packageId":"3b4b4a489fce1475c4577fb6",
"applicationArea":"ssswww",
"total":"219000",
"ModularIdNum":[
{
"itemId":"09932da9b744dc99e295",
"modularNum":3
}
]
}
]
}

解决方案:

controller正常传入数据,在serviceImpl层中对数据进行分解和重新发送业务逻辑:

(1)当数据传入是JsonObject,用如下方法传递

 /**
* 下订单
*
* @param baseSingleList
* @return Object
*/
@Override
public Object addOrder(BaseSingleList baseSingleList) { String lineArray = JSONArray.toJSONString(baseSingleList);
HashMap parseMap = JSON.parseObject(lineArray,HashMap.class); List<SingleOrder> singleOrderList = JSON.parseArray(JSON.parseObject(lineArray).getString("singleOrderList"),SingleOrder.class); for(SingleOrder singleOrder : singleOrderList){ System.out.println(singleOrder.getUserId());
}
}

(2)当数据传入是Map时

 /**
* 下订单
*
* @param baseSingleList
* @return Object
*/
@Override
public Object addOrder(BaseSingleList baseSingleList) { Map<String, Object> map = new HashMap<String, Object>();
map.put("count", 2);
map.put("studentList", baseSingleList);
String json = JSON.toJSONString(map, true); HashMap parseMap = JSON.parseObject(json, HashMap.class);
List<BaseSingleList> studentList1 = (List<BaseSingleList>) parseMap.get("baseSingleList"); for (SingleOrder singleOrder : singleOrderList) { System.out.println(singleOrder.getUserId());
} }

参考文献 :

https://blog.csdn.net/jeffleo/article/details/73612224

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,082
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,557
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,406
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,179
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,815
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898