1.错误代码

/**** 获取商品秒杀政策* @param list* @return*/private Map<String, Object> getLimitPolicy(ArrayList<Map<String, Object>> list){Map<String, Object> resultMap = new HashMap<String, Object>();for (Map<String, Object> skuMap: list){//3.1、从redis取出政策String policy = stringRedisTemplate.opsForValue().get("LIMIT_POLICY_"+skuMap.get("sku_id").toString());//3.2、判断有政策的才继续if (policy!=null&&!policy.equals("")){//  Map<String, Object> policyInfo = JSONObject.parseObject(policy, Map.class);Limit_Policy  limit_policy=JSONObject.parseObject(policy,Limit_Policy.class);//3.3、开始时间小于等于当前时间,并且当前时间小于等于结束时间SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");String now = restTemplate.getForObject("http://leyou-time-server/getTime", String.class);try {Date end_time = simpleDateFormat.parse(limit_policy.getEnd_time().toString());Date begin_time = simpleDateFormat.parse(limit_policy.getBegin_time().toString());Date now_time = simpleDateFormat.parse(now);if (begin_time.getTime()<=now_time.getTime()&&now_time.getTime()<=end_time.getTime()){skuMap.put("limitPrice", limit_policy.getPrice());skuMap.put("limitQuanty", limit_policy.getQuanty());skuMap.put("limitBeginTime", limit_policy.getBegin_time());skuMap.put("limitEndTime", limit_policy.getEnd_time());skuMap.put("nowTime", now);}} catch (ParseException e) {e.printStackTrace();}}}resultMap.put("result", true);resultMap.put("msg", "");return resultMap;}

出错位置: Limit_Policy  limit_policy=JSONObject.parseObject(policy,Limit_Policy.class);

2.redis 数据

Limit_Policy{id=0, sku_id=26816294479, quanty=7777, price=1000, begin_time=Sun Dec 29 19:00:00 CST 2019, end_time=Mon Dec 30 06:00:00 CST 2019}

3.实体类

package com.zengjx.leyou.pojo;import org.springframework.stereotype.Component;import java.io.Serializable;
import java.util.Date;/*** @ClassName HelloController* @Description TODO* @Author zengjx* @Company zengjx* @Date 2019/12/29  16:30* @Version V1.0*/
@Componentpublic   class Limit_Policy   implements Serializable {private     long   id;private    long sku_id;private    int  quanty;private     int  price;private   Date  begin_time;private   Date end_time;public long getId() {return id;}public void setId(long id) {this.id = id;}public long getSku_id() {return sku_id;}public void setSku_id(long sku_id) {this.sku_id = sku_id;}public int getQuanty() {return quanty;}public void setQuanty(int quanty) {this.quanty = quanty;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}public Date getBegin_time() {return begin_time;}public void setBegin_time(Date begin_time) {this.begin_time = begin_time;}public Date getEnd_time() {return end_time;}public void setEnd_time(Date end_time) {this.end_time = end_time;}public Limit_Policy() {}@Overridepublic String toString() {return "Limit_Policy{" +"id=" + id +", sku_id=" + sku_id +", quanty=" + quanty +", price=" + price +", begin_time=" + begin_time +", end_time=" + end_time +'}';}
}

4.错误日志

com.alibaba.fastjson.JSONException: syntax error, expect {, actual error, pos 0, fastjson-version 1.2.58at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:489) ~[fastjson-1.2.58.jar:na]at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.parseRest(JavaBeanDeserializer.java:1537) ~[fastjson-1.2.58.jar:na]at com.alibaba.fastjson.parser.deserializer.FastjsonASMDeserializer_1_Limit_Policy.deserialze(Unknown Source) ~[na:na]at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:284) ~[fastjson-1.2.58.jar:na]at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:689) ~[fastjson-1.2.58.jar:na]at com.alibaba.fastjson.JSON.parseObject(JSON.java:378) ~[fastjson-1.2.58.jar:na]at com.alibaba.fastjson.JSON.parseObject(JSON.java:282) ~[fastjson-1.2.58.jar:na]at com.alibaba.fastjson.JSON.parseObject(JSON.java:555) ~[fastjson-1.2.58.jar:na]at com.zengjx.leyou.service.StockService.getLimitPolicy(StockService.java:170) ~[classes/:na]at com.zengjx.leyou.service.StockService.getStockListBySpu_id(StockService.java:57) ~[classes/:na]

5.测试:

{"sku_id": 26816294479,"quanty": 7777,"price": 1000,"begin_time": "2019-12-29T11:00:00.000+0000","end_time": "2019-12-29T22:00:00.000+0000"
}
    public static void main(String[] args) {String   policy="{\n" +"\t\n" +"    \"sku_id\": 26816294479,\n" +"    \"quanty\": 7777,\n" +"    \"price\": 1000,\n" +"    \"begin_time\": \"2019-12-29T11:00:00.000+0000\",\n" +"    \"end_time\": \"2019-12-29T22:00:00.000+0000\"\n" +"}";Limit_Policy parseObject = JSONObject.parseObject(policy, Limit_Policy.class);System.out.println(parseObject);}

出错的json数据:与上面不同的是以LimitPolicy开头字符串

使用json格式在线校验下面这行redis 读取的数据。

Limit_Policy {id = 0, sku_id = 26816294479, quanty = 7777, price = 1000, begin_time = Sun Dec 29 19: 00: 00 CST 2019, end_time = Mon Dec 30 06: 00: 00 CST 2019
}

校验出错:在线校验   http://www.bejson.com/

原因是实体类:重写了toString

//存入redis
stringRedisTemplate.opsForValue().set("LIMIT_POLICY_"+limit_policy.getSku_id(),limit_policy.toString(),end_diff, TimeUnit.SECONDS);

以下测试可以相互转换

FastJson对实体类和Json还有JSONObject相互转换

1. 实体类或集合转JSON串

String besnString = JSONObject.toJSONString(实体类);

2.JSON串转JSONObject

JSONObject jsonObject = JSONObject.parseObject(jsonString);

3.JSON串转实体类

实体类 javaBean = JSON.parseObject(json, 实体类.class);

4.JSON串转带泛型的List的集合

List<实体类或其他泛型> list = JSON.parseObject(json, new TypeReference<List<实体类或其他泛型>>(){});
    public static void main(String[] args) {test2();}public   static   void    test1(){String   policy="{\n" +"\t\n" +"    \"sku_id\": 26816294479,\n" +"    \"quanty\": 7777,\n" +"    \"price\": 1000,\n" +"    \"begin_time\": \"2019-12-29T11:00:00.000+0000\",\n" +"    \"end_time\": \"2019-12-29T22:00:00.000+0000\"\n" +"}";Limit_Policy parseObject = JSONObject.parseObject(policy, Limit_Policy.class);System.out.println(parseObject);}public   static   void    test2(){Limit_Policy  limit_policy  =new Limit_Policy();limit_policy.setBegin_time(new Date());limit_policy.setEnd_time(new Date());limit_policy.setId(11111);limit_policy.setPrice(11111333);String besnString = JSONObject.toJSONString(limit_policy);System.out.println(besnString);//{"begin_time":1577625875722,"end_time":1577625875722,"id":11111,"price":11111333,"quanty":0,"sku_id":0}Limit_Policy parseObject = JSONObject.parseObject(besnString, Limit_Policy.class);System.out.println("反转"+parseObject);}

6.修改

 原来:  stringRedisTemplate.opsForValue().set("LIMIT_POLICY_"+limit_policy.getSku_id(),limit_policy.toString(),end_diff, TimeUnit.SECONDS);
修改后
String besnString = JSONObject.toJSONString(limit_policy);
   stringRedisTemplate.opsForValue().set("LIMIT_POLICY_"+limit_policy.getSku_id(),besnString,end_diff, TimeUnit.SECONDS);

//存入redisString besnString = JSONObject.toJSONString(limit_policy);//   stringRedisTemplate.opsForValue().set("LIMIT_POLICY_"+limit_policy.getSku_id(),limit_policy.toString(),end_diff, TimeUnit.SECONDS);stringRedisTemplate.opsForValue().set("LIMIT_POLICY_"+limit_policy.getSku_id(),besnString,end_diff, TimeUnit.SECONDS);

FastJson解析错误:com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze相关推荐

  1. Fastjson解析错误---NumberFormatException: For input string: Nov 11, 2015 12:22:12 PM

    desc 1.在写storm demo时,spount随机生成对象,利用Gson将其转化为json字符串,通过Fastjson将spout传过来的字符串解析为对象时报错. method 1.更换fas ...

  2. 解决com.alibaba.fastjson.JSONException: autoType is not support

    转载自 https://blog.csdn.net/cdyjy_litao/article/details/72458538 最近发现进程运行日志中出现很多下面的日志: com.alibaba.fas ...

  3. 关于Caused by: com.alibaba.fastjson.JSONException: syntax error, expect }, actual ,

    Fastjson升级问题 目录 Fastjson升级问题 问题背景 问题现象 问题堆栈信息 问题解决之路(思考方向) 复现问题 问题原因 问题解决 参考博客 问题背景 Fastjson版本由于存在安全 ...

  4. com.alibaba.fastjson.JSONException: unclosed.str.lit

    JSON字符串去除\r  \n等特殊字符后,JSONArray.parseArray()报错 String replaceJsonStr = JSON.toJSONString(jsonStr).re ...

  5. 使用FastJson解析时有关内部类的两个问题

    1.内部类层次结构不对 假设有一个model类,代码如下: public class Model {public Data data;public class Data {public List< ...

  6. Java学习总结(二十)——JSON解析:官方解析,GSON解析,FastJSON解析,

    一.JSON简介: 1.JSON(javaScript Object Notation)是一种轻量级的数据交换格式: 2.JSON数据作为目前网络中主流的数据传输格式之一,应用十分广泛: 3.JSON ...

  7. String 转json对象、转实体类、String 转数组 | alibaba.fastjson

    目录 说明 String 转数组 string 转jsonObject string 转map string 转实体 string 转list 常见错误 说明 常用的json工具类有alibaba.f ...

  8. com.alibaba.fastjson.JSONObject;的使用,自不同3个jar包的JSONObject的区别

    注意来自不同3个jar包的JSONObject的区别 com.alibaba.fastjson.JSONObject net.sf.json.JSONObject org.json.JSONObjec ...

  9. 使用fastjson解析json抓取新浪新闻文章

    首先看看2个简单的fastjson的使用 例子一 package ivyy.taobao.com.domain.json;import java.util.Iterator;import com.al ...

  10. alibaba fastjson生成的嵌套json串带反斜杠

    fastjson如何去掉多余的反斜杠_学无止境i的博客-CSDN博客_fastjson去除反斜杠 public class Entity{private String data0 = "&q ...

最新文章

  1. 12×××求职经过-之求职信
  2. leetcode2. 两数相加--每天刷一道leetcode系列!
  3. 数据结构源码笔记(C语言描述)汇总
  4. 广联达2018模板算量步骤_工程人必须掌握:这9份软件算量教程+24份算量计算表,无偿分享...
  5. Jupyter Notebook 快捷键 和 Markdown知识点总结
  6. 酱油和gbt酱油哪个好_酱油可不是越贵越好?看清瓶身上的5个字,教你1分钟买到好酱油...
  7. ST-Link刷成J-Link
  8. java xml 单标签,如何修改java中的xml标签特定值?
  9. [c/c++] c 操作mysql数据库
  10. linux远程备份视频教程,linux实现自动远程备份(scp+ssh)
  11. C++ 字节序测试代码
  12. 3D贴图绘制软件Substance 3D Painter 2022中文版
  13. Windows Server 2012和2016从Evaluation评估版升级到正式版方法(附带产品密钥/key)
  14. JDK1.5版本新增特性
  15. 《雍正皇帝·九王夺嫡》生态文化专有词泰译研究(第一章)
  16. C#检查网络是否连接的方法
  17. 怎么用python电商文本挖掘?(5)
  18. 专业商标设计、logo免费在线设计
  19. (附源码)计算机毕业设计Java二次元文化网站
  20. 狗眼看人低的十种职业~

热门文章

  1. Apache和Apache Tomcat的区别是什么?
  2. 360浏览器插件360抢票王火车票刷票技巧
  3. 微信小程序连接蓝牙汉印HM-A300L标签打印机
  4. 核酸检测系统的潜在性能问题猜想
  5. 1338: 不及格率
  6. 深度学习在音乐信息检索(MIR)方向的应用介绍(上)
  7. 吊打面试官系列之:移动APP UI面试必备知识点,果然路转粉。
  8. 在Word中的方框里打对勾都有哪些方法?☑☑☑
  9. 帮助你提高排版技巧的18个 PS 文字特效教程
  10. 爬虫出现Forbidden by robots.txt