原因:

前端传递的数组过于复杂,倒是出现这种问题,前端采用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

fastjson 错误解决方案详情 com.alibaba.fastjson.JSONException: syntax error, expect {, actual EOF, pos 1410的更多相关文章

  1. 关于使用fastjson出现的问题:com.alibaba.fastjson.JSONException: syntax error, expect {, actual string, pos 1, fastjson-version 1.2.44

    先说下需求:是从redis中根据keys批量获取数据集合,再通过fastjson转为对象集合 代码如下: 在postman测试后,出现错误如下: 刚开始以为是使用fstjson方法不对,后面先通过打断 ...

  2. Caused by: com.alibaba.fastjson.JSONException: syntax error, expect {, actual [, pos 0, fastjson-version 1.2

    环境: vue.js 问题: 当添加评论时 重新查询数据刷新数据控制台异常Caused by: com.alibaba.fastjson.JSONException: syntax error, ex ...

  3. redis通过json方案存取对象com.alibaba.fastjson.JSONException: syntax error, expect

    问题描述: redis基于json方案存取对象时报错:com.alibaba.fastjson.JSONException: syntax error, expect com.alibaba.fast ...

  4. JSON parse error: syntax error, expect {, actual error, pos 0, fastjson-version 1.2.58; nested exception is com.alibaba.fastjson.JSONExcetion: syntax error, except {, actual error, pos ...

    这个报错信息告诉你,你提交的参数需要是json类型.所以,POST请求携带的数据需要序列化一下json.dumps(data).

  5. 解决使用Redis时配置 fastjson反序列化报错 com.alibaba.fastjson.JSONException: autoType is not support

    1.问题描述 在使用redis时,配置自定义序列化redisTemplate为FastJsonRedisSerializer .  1 /** 2 * 自定义redis序列化器 3 */ 4 @Sup ...

  6. fastJson解析报错:com.alibaba.fastjson.JSONException: can't create non-static inner class instance.

    原因: 如果出现类嵌套类的情况,需要将被嵌套的那个类设置为static. 比如: public class AA { // 相关属性 public class BB {//会报错 // 相关属性 } ...

  7. 使用Redis 配置替换fastjson 反序列化报错 com.alibaba.fastjson.JSONException: autoType is not support

    新建的GenericFastJson2JsonRedisSerializer里面添加白名 添加: static {        ParserConfig.getGlobalInstance().ad ...

  8. Java-Class-I:com.alibaba.fastjson.JSONObject

    ylbtech-Java-Class-I:com.alibaba.fastjson.JSONObject 1.返回顶部 1.1.import com.alibaba.fastjson.JSON;imp ...

  9. 全解史上最快的JOSN解析库 - alibaba Fastjson

    JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的.简洁和清晰的层次结构使得 JSON 成为理想的数据交换 ...

随机推荐

  1. 使用mybatis-generator-core工具自动生成mybatis实体

    我们可以使用mybatis-generator-core这个工具将数据库对象转换成mybatis对象,具体步骤如下. 1.mybatis-generator-core下载 下载地址:http://do ...

  2. C++ 求最长递增子序列(动态规划)

    i 0 1 2 3 4 5 6 7 8 a[i] 1 4 7 2 5 8 3 6 9 lis[i] 1 2 3 2 3 4 3 4 5 时间复杂度为n^2的算法: //求最长递增子序列 //2019/ ...

  3. composer 安装新包失败的原因之一

    各种方法都尝试过了,然而最大的可能就是不能访问国外的资源! 1.使用vpnFQ下载 2.修改一下composer的配置,命令如下: composer config -g repo.packagist ...

  4. how2j网站前端项目——天猫前端(第一次)学习笔记8

    其他页面的学习 这些页面有1.查询结果页 2.支付页面 3.支付成功页面 4.确认收货页面上 5.确认收货页面下 6.收获成功页面 7.评价页面上 8.评价页面下 9.登陆页面 10.注册页面 1.查 ...

  5. 5C - A == B ?

    Give you two numbers A and B, if A is equal to B, you should print "YES", or print "N ...

  6. iOS一段文字设置多种颜色格式

    调用 [self fuwenbenLabel:contentLabel FontNumber:[UIFont systemFontOfSize:] AndRange:NSMakeRange(, ) A ...

  7. vim 中将 TAB 换成 4 个空格

    最近开始学习Python,其语法简单,但是对代码格式要求比较严格.代码采用缩进方式,按照约定采用4个空格的缩进. Linux下配置vim编辑器中Tab键为4个空格方法: 1. 编辑文件: vi /et ...

  8. linux代码常用查询!!!!!!!!!!!!

    字符串: echo "a b c d e f"|cut -d ' ' -f1            输出a echo "a b c d e f"|cut -d  ...

  9. 使用mysql proxy对数据库进行读写分离

    服务器安排如下: 192.168.100.128 主 192.168.100.129 从 192.168.100.130 mysql-proxy 1.在100.130中下载安装mysql-proxy ...

  10. 火狐 debug 看向后台传递的信息

    自己做前端和后台开发,最重要的是数据交换,知道了数据是怎么传的,传到哪里,传的什么,就能很容易的开发. 火狐看传递参数的信息在debug里面,详情如图: 我的后台的C# 的webservice,接收起 ...