fastjson 错误解决方案详情 com.alibaba.fastjson.JSONException: syntax error, expect {, actual EOF, pos 1410

原因:

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

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

复制代码
 1 /**
 2      * 
 3      * <p>
 4      * <p>添加订单
 5      *
 6      * @return Object
 7      */
 8     @ResponseBody
 9     @RequestMapping(value = "/addOrder", //
10             method = RequestMethod.POST)
11     public Object addOrder(@RequestBody BaseSingleList baseSingleList) {
12 
13         return orderService.addOrder(baseSingleList);
14 
15  }
View Code
复制代码

前端发送json样式

复制代码
 1 {
 2     "singleOrderList":[
 3         {
 4             "orderName":"唐1",
 5             "orderPhone":"13245124512",
 6             "contact":"送",
 7             "telephony":"7845120231111",
 8             "provinceId":31,
 9             "cityId":3101,
10             "regionId":310108,
11             "address":"默认添加唐",
12             "userId":"c6f53705451b497580ef093c0ff5",
13             "serieId":"1",
14             "trueTime":"2018-04-27",
15             "overTime":"2019-04-27",
16             "monthlyRent":6000,
17             "dateCount":12,
18             "packageId":"3e449fb4b4a489fce1475c4577fb6",
19             "applicationArea":"ssswww",
20             "total":"219000",
21             "ModularIdNum":[
22                 {
23                     "itemId":"9b744dc99e2904d96ab1af5",
24                     "modularNum":3
25                 }
26             ]
27         },
28         {
29             "orderName":"唐1",
30             "orderPhone":"13245124512",
31             "contact":"送",
32             "telephony":"7845120231111",
33             "provinceId":31,
34             "cityId":3101,
35             "regionId":310108,
36             "address":"默认添加唐",
37             "userId":"b4f13b97580ef093c0ff5",
38             "serieId":"1",
39             "trueTime":"2018-04-27",
40             "overTime":"2019-04-27",
41             "monthlyRent":6000,
42             "dateCount":12,
43             "packageId":"3b4b4a489fce1475c4577fb6",
44             "applicationArea":"ssswww",
45             "total":"219000",
46             "ModularIdNum":[
47                 {
48                     "itemId":"09932da9b744dc99e295",
49                     "modularNum":3
50                 }
51             ]
52         }
53     ]
54 }
View Code
复制代码

解决方案:

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

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

复制代码
 1 /**
 2      * 下订单
 3      *
 4      * @param baseSingleList
 5      * @return Object
 6      */
 7     @Override
 8     public Object addOrder(BaseSingleList baseSingleList) {
 9 
10         String lineArray = JSONArray.toJSONString(baseSingleList);
11         HashMap parseMap = JSON.parseObject(lineArray,HashMap.class);
12 
13         List<SingleOrder> singleOrderList = JSON.parseArray(JSON.parseObject(lineArray).getString("singleOrderList"),SingleOrder.class);
14         
15          for(SingleOrder singleOrder : singleOrderList){
16 
17              System.out.println(singleOrder.getUserId());
18          }
19 }
View Code
复制代码

   (2)当数据传入是Map时

复制代码
 1 /**
 2      * 下订单
 3      *
 4      * @param baseSingleList
 5      * @return Object
 6      */
 7     @Override
 8     public Object addOrder(BaseSingleList baseSingleList) {
 9 
10 
11 
12         Map<String, Object> map = new HashMap<String, Object>();
13         map.put("count", 2);
14         map.put("studentList", baseSingleList);
15         String json = JSON.toJSONString(map, true);
16 
17 
18         HashMap parseMap = JSON.parseObject(json, HashMap.class);
19         List<BaseSingleList> studentList1 = (List<BaseSingleList>) parseMap.get("baseSingleList");
20 
21          for (SingleOrder singleOrder : singleOrderList) {
22           
23             System.out.println(singleOrder.getUserId());
24   }
25 
26 }
View Code
复制代码

 

  

 参考文献 :

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

posted @   北极的大企鹅  阅读(68244)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
阅读 - 79万
点击右上角即可分享
微信分享提示