@Data
public class CouponTemplateDto {
/**
* 优惠券类型id
*/
private Long couponTypeId;
/**
* 优惠券模板id
*/
private Long couponTemplateId;
/**
* 用户id
*/
private Long userId; /**
* 优惠券描述
*/
private String description;
/**
* 面值,满200减30,则此值为30
*/
private BigDecimal value;
/**
* 从次日起,多少天可用
*/
private Integer delayDays;
/**
* 从当日起,多少天可用
*/
private Integer nowDays;
/**
* 满多少可以减,满200减30,则此值为200
*/
private BigDecimal fullAmount; /**
* 券号
*/
private String couponNo; /**
* 有效起始日期
*/
private Date startTime; /**
* 失效日期
*/
private Date endTime; /**
* 创建时间
*/
private Date createTime; /**
* 使用日期
*/
private Date useTime; /**
* 券使用状态:0-未使用 1-已使用 2-已过期
*/
private Integer couponUseStatus;
/**
* 过期前多少天提醒,默认7天
*/
private Integer overDueRemind;
/**
* 优惠券标题
*/
private String title; /**
* 优惠券是否能开始使用
*/
// @JsonProperty("isStart")
private Boolean start;
/**
* 优惠券是否过期
*/
// @JsonProperty("isEnd")
private Boolean end; private Boolean getStart() {
return startTime.before(new Date());
} private Boolean getEnd() {
return endTime.before(new Date());
}
}

我定义了一个这样的类,我们项目用的是Spring Boot,默认底层采用的是jackson序列化,但是在使用中出了一个问题private Boolean startprivate Boolean end这两个字段一直无法序列化

总结排查思路如下:

  1. 是boolean还是Boolean,到底是基本数据类型还是包装类,如果是基本数据类型的话(包装类可以使用,但是不推荐),不要使用is开头。我们可以看看阿里巴巴规范中的这段话

    1. 【强制】POJO类中的任何布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。

    反例:定义为基本数据类型 boolean isSuccess;的属性,它的方法也是 isSuccess(),RPC框架在反向解析的时候,“以为”对应的属性名称是 success,导致属性获取不到,进而抛出异常。

  2. 这个错误也是我犯的错误,我复写了get方法,方法的访问权限被设置成了private级别

    解决方案:

    • 加注解,@JsonProperty(“isEnd”)
    • 将方法级别更正为public

最新文章

  1. spool命令
  2. 基于Ruby的watir-webdriver自动化测试方案与实施(二)
  3. css疑难汇总
  4. PHP调用webservice遇到 Soap WSDL Error - "failed to load external entity
  5. WebApi:使用方法名或者控制器名作为接口地址
  6. 设置h5页面不可复制文字
  7. BZOJ1565 植物大战僵尸
  8. BestCoder Round #65 hdu5591(尼姆博弈)
  9. 从零学起PHP
  10. 删除svn密码方法
  11. 微信网页授权获取code链接
  12. hbuilder 手机app开发系列(一)
  13. BotVS开发基础—2.7 指标MACD
  14. python/零起点(一、字典)
  15. Android Multimedia框架总结(十)Stagefright框架之音视频输出过程
  16. C# -- 等待异步操作执行完成的方式
  17. PythonStudy1——Python 值拷贝 浅拷贝 深拷贝
  18. 华硕R系列的解剖图
  19. 各种梯度下降 bgd sgd mbgd adam
  20. [ SHELL编程 ] 文件内容大小写替换

热门文章

  1. 最长回文子窜O(N)
  2. 统计子串数量,Python基础
  3. 《并发编程的艺术》阅读笔记之Sychronized
  4. HTTP Request和Response
  5. asp.net core identity学习1
  6. 学习Python爬虫的4幅思维导图
  7. Java面试系列第2篇-Object类中的方法
  8. 文本序列化【通用】word2sequence,文本序列字典保存
  9. 随笔之——浮动(float)的影响及其清除、、clear与overflow-hidden清除float的不同!!!
  10. LDA概率主题模型