fastjson 錯誤解決方案詳情 com.alibaba.fastjson.JSONException: syntax error, expect {, actual EOF, pos 1410

緣由:前端

      前端傳遞的數組過於複雜,卻是出現這種問題,前端採用vue axios,發送請求,後端java接收代碼,實現先後端分離vue

後端就收fastjson接收json,進行業務處理,後端Controller情況:java

 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樣式ios

 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

解決方案:json

       controller正常傳入數據,在serviceImpl層中對數據進行分解和從新發送業務邏輯:axios

    (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

 

  

 參考文獻 :app

                https://blog.csdn.net/jeffleo/article/details/73612224前後端分離

相關文章
相關標籤/搜索