fastjson 错误解决方案详情 com.alibaba.fastjson.JSONException: syntax error, expect {, actual EOF, pos 1410
原因:
前端传递的数组过于复杂,倒是出现这种问题,前端采用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的更多相关文章
- 关于使用fastjson出现的问题:com.alibaba.fastjson.JSONException: syntax error, expect {, actual string, pos 1, fastjson-version 1.2.44
先说下需求:是从redis中根据keys批量获取数据集合,再通过fastjson转为对象集合 代码如下: 在postman测试后,出现错误如下: 刚开始以为是使用fstjson方法不对,后面先通过打断 ...
- 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 ...
- redis通过json方案存取对象com.alibaba.fastjson.JSONException: syntax error, expect
问题描述: redis基于json方案存取对象时报错:com.alibaba.fastjson.JSONException: syntax error, expect com.alibaba.fast ...
- 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).
- 解决使用Redis时配置 fastjson反序列化报错 com.alibaba.fastjson.JSONException: autoType is not support
1.问题描述 在使用redis时,配置自定义序列化redisTemplate为FastJsonRedisSerializer . 1 /** 2 * 自定义redis序列化器 3 */ 4 @Sup ...
- fastJson解析报错:com.alibaba.fastjson.JSONException: can't create non-static inner class instance.
原因: 如果出现类嵌套类的情况,需要将被嵌套的那个类设置为static. 比如: public class AA { // 相关属性 public class BB {//会报错 // 相关属性 } ...
- 使用Redis 配置替换fastjson 反序列化报错 com.alibaba.fastjson.JSONException: autoType is not support
新建的GenericFastJson2JsonRedisSerializer里面添加白名 添加: static { ParserConfig.getGlobalInstance().ad ...
- Java-Class-I:com.alibaba.fastjson.JSONObject
ylbtech-Java-Class-I:com.alibaba.fastjson.JSONObject 1.返回顶部 1.1.import com.alibaba.fastjson.JSON;imp ...
- 全解史上最快的JOSN解析库 - alibaba Fastjson
JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的.简洁和清晰的层次结构使得 JSON 成为理想的数据交换 ...
随机推荐
- js实现各种复制到剪贴板的方法
一.实现点击按钮,复制文本框中的的内容 <script type="text/javascript"> function copyUrl2() { var Url2=d ...
- Vue 数组 字典 template v-for 的使用
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- u-boot之NAND启动与NOR启动的区别
nand启动与nor启动的区别主要分为以下几部分说明: 1.nand flash与nor flash的最主要区别 2.s3c2440的nand启动与nor启动原理 3.nand启动与nor启动的时候u ...
- sharpsvn 继续,解决文件locked 问题,
方法中少个方法就会出现一些问题. 比如进行了断线测试,结果再操作时就出现了文件被锁的情况,最终查了官网的论坛,才得以解决 How to unlock if the working copy is lo ...
- PAT 1018 锤子剪刀布(20)
1018 锤子剪刀布 (20)(20 分) 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方 ...
- UVALive - 3266 (贪心) 田忌赛马
耳熟能详的故事,田忌赛马,第一行给出田忌的马的速度,第二行是齐王的马的速度,田忌赢一场得200,输一场失去200,平局不得也不失,问最后田忌最多能得多少钱? 都知道在故事里,田忌用下等马对上等马,中等 ...
- windows上安装RabbitMQ
windows下 安装 rabbitMQ 及操作常用命令 rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 ...
- javascript 高级程序设计 二
这里我们直接进入主题: 在JS刚刚开始的时候,必须面临一个问题,那就是如何使的JS的加载和执行不会影响web核心语言HTML的展示效果,和HTML和谐共存. 在这个背景下<script>标 ...
- BZOJ 1093 [ZJOI2007]最大半连通子图 - Tarjan 缩点
Description 定义一个半联通图为 : 对任意的两个点$u, v$,都有存在一条路径从$u$到$v$, 或从$v$到$u$. 给出一个有向图, 要求出节点最多的半联通子图, 并求出方案数. ...
- Luogu1070-道路游戏-动态规划
Solution 用对角线的前缀和快速进行转移,复杂度$O(N^3)$, 洛谷神机太快了$N^3$都能过 然而正解是单调队列优化, 能优化到$O(N^2)$,然而我弱得什么都不会 Code #incl ...