首页 > 其他 > 详细

使用Jackson,给对象字段序列化-反序列化设置别名

时间:2020-03-20 19:36:44      阅读:302      评论:0      收藏:0      [点我收藏+]
  1. 场景:

    我需要利用二维码携带对象的JSON化数据,然后供别的系统扫描读取,在使用过程中由于携带的数据量太大,导致二维码点阵过密,识别率下降。此时需要对二维码中的JSON数据进行精简处理,首先想到的就是将字段的key缩短,但是不能直接缩短对象的类字段名,这会导致类字段的可读性下降和连带修改多处代码的问题。

  2. 由于我使用的是Jackson库,它提供了@JsonProperty注解,可以在序列化过程中启用字段别名,并且在序列化和反序列化两个方向上都是对等的,简直不要太方便。
  3. 模型类定义:
@Data
public class Cat {
  @JsonProperty("fn") // 定义了一个更精简的别名
  public String firstName;
}
  • 序列化:
@GetMapping("/get")
public Cat get() {
   Cat cat = new Cat();
   cat.setFirst_name("杨XX");
   return cat;
}
// 请求结果:{"fn": "杨XX"}
  • 反序列化:
@PostMapping("/put")
public Cat put(@RequestBody Cat cat) {
   return cat;
}
// 请求参数_0:{"firstName": "123"},后端成功解析。
// 请求参数_1:{"fn": "456"},后端成功解析。

结论:使用@jackson的JsonProperty注解,序列化能很好的使用别名替换真实字段,在反序列化过程中能同时支持别名和真名。

使用Jackson,给对象字段序列化-反序列化设置别名

原文:https://www.cnblogs.com/JaxYoun/p/12533872.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!