原因:

前端传递的数组过于复杂,倒是出现这种问题,前端采用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. Java_8排序(冒泡排序和选择排序)

    1.选择排序 package demo1; public class Demo1 { public static void main(String[] args) { int[] arr= {23,5 ...

  2. Java面试基础知识(2)

    1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致.   2.说说& ...

  3. 操作符offset

    操作符offset在汇编语言中是由编译器处理的符号,它的功能是取得标号的偏移地址. assume cs:codesg codesg segment start: mov ax, offset star ...

  4. bootstrap日历控件

    bootstrap的日历控件: <link href="~/bootstrap/css/bootstrap.min.css" rel="stylesheet&quo ...

  5. socket错误代码

    Socket error 0 - Directly send error Socket error 10004 - Interrupted function call一个封锁操作被对 WSACance ...

  6. android studio 安装过程

    下载 安装版本:3.0.1 下载地址:https://pan.baidu.com/s/1Uq6QSZXpmWUiBW6K-tRqKw 密码:zbtb 安装 双击安装包进行安装,选择安装位置,安装完成打 ...

  7. Java泛型:List<?>与List的区别

    为什么说List<?>是type-safe而List不是type-safe的? 1.List<?> compiler看到了你使用了wildcard ?,那么相当于你对compi ...

  8. Spring 监听

    Spring 中的事件监听的实现 这里我们不讨论事件监听的机制的原理,我们只讨论如何在项目中实现时间监听. spring的事件监听是基于观察者模式.设计开发中.如下类与接口是我们必须要使用的. App ...

  9. Liunx history

    Linux中history历史命令使用方法详解   (转) 作者:青藤园来源:|2012-05-10 10:     http://os.51cto.com/art/201205/335040.htm ...

  10. 关于python的字符编码

    理论特别多,金角大王讲的非常细致和深入浅出. 我来个简短的总结: python2的编码:默认是ascii,可以改变成gbk,utf-8等,但是用什么编码写的,就存储成什么编码.如果搬到linux,默认 ...