原因:

前端传递的数组过于复杂,倒是出现这种问题,前端采用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. SpringBoot使用@Value从yml文件取值为空--注入静态变量

    SpringBoot使用@Value从yml文件取值为空--注入静态变量     1.application.yml中配置内容如下:   pcacmgr:   publicCertFilePath: ...

  2. Django xadmin后台添加富文本编辑器UEditor的用法

    效果图: 步骤: 1.利用命令:pip install DjangoUeditor,安装DjangoUeditor,但由于DjangoUeditor没有python3版本的,从的Github上把修改好 ...

  3. Python爬虫项目--爬取猫眼电影Top100榜

    本次抓取猫眼电影Top100榜所用到的知识点: 1. python requests库 2. 正则表达式 3. csv模块 4. 多进程 正文 目标站点分析 通过对目标站点的分析, 来确定网页结构,  ...

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

    开始学习结算页面 结算页面分为3个部分学习:1.简单的头部和收货地址 2.较为复杂的确认订单信息 3.交互 一.简单的头部和收货地址 根据站长的图片,自己模仿着做了一下,刚开始没有想到填写信息的4个框 ...

  5. Mysql数据备份与还原

    一.数据备份 1.使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先 ...

  6. 为什么使用Reazor

    原因:类似于前边写的模板页,自己写了.还需要用replace来替换成自己想要的变量.. 常见的模板引擎:Razor.Nvelocity.Vtemplate. Razor有VS自动提示,而且有助于学习a ...

  7. 函数 day9

    一,什么是函数? 函数的定义与调用 s = 'fkdsagadfdsagfdsagg' count = 0 for i in s: count += 1 print(count) l1 = [1,2, ...

  8. jQuery Dom对象操作 增、删、改、复制、包裹

    1. 增(插入) 内部插入 //向每个匹配的元素内部追加内容,为最后一个子元素$('.violet').append('<div></div>'); //把所有匹配的元素追加到 ...

  9. (转)Java程序员简历模板

    本简历模板由国内首家互联网人才拍卖网站「 JobDeer.com 」提供. (括号里的是我们的顾问编写的说明,建议在简历书写完成后统一删除) 先讲讲怎样才是一份好的技术简历 首先,一份好的简历不光说明 ...

  10. tkinter模块

    Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...