zoukankan      html  css  js  c++  java
  • jackson 常用注解,比如忽略某些属性,驼峰和下划线互转

    一般情况下使用JSON只使用了java对象与字符串的转换,但是,开发APP时候,我们经常使用实体类来做转换;这样,就需要用到注解;
    Jackson默认是针对get方法来生成JSON字符串的,可以使用注解来做一些特殊用途;常见的使用如下:
    1 排除属性
    @JsonIgnore,一般标记在属性或方法上;作用于序列化与反序列化,在pure pojo中使用的比较少,但是在某些富pojo中,比如说由于缓存考虑,我们可能设置了一个接口,其中有个接口方法叫做getKey,此时默认的序列化/反序列化就会导致key找不到。

    2 属性别名
    @JsonProperty,序列化/反序列化都有效,早期版本一般用于pojo和mybatis mapper之间在驼峰式和下划线之间转换,在mybatis 3中,已经内置了该规则,可参见http://www.cnblogs.com/zhjh256/p/5814414.html;

    3 属性排序
    @JsonPropertyOrder,注释在类声明中;这个注解在某些对性能有极端要求且灵活性要求不是那么高场景中,可以一定程度上提升性能。

    4 属性格式转换
    使用自定义序列化/反序列化来处理;
    @JsonSerialize,序列化;
    @JsonDeserialize,反序列化;

    不过,默认情况下,jackson是不处理注解的,需调用objectMapper.setAnnotationIntrospector(new JacksonAnnotationIntrospector());

    需要注意的是:1.9之前仅根据语法确定有效或无效,1.9之后根据javabean的规范确定生效的getter/setter和属性。

  • 相关阅读:
    触发器
    数据库一键退出脚本
    集合
    Android 自定义控件之继承ViewGroup创建新容器
    web学习测试环境
    ref:ubuntu下如何批量修改文件后缀名
    ref:Adding AFL Bloom Filter to Domato for Fun
    ref:phpstorm配置远程调试(xdebug)(docker中)
    ref:PHP反序列化漏洞成因及漏洞挖掘技巧与案例
    ref:【干货分享】PHP漏洞挖掘——进阶篇
  • 原文地址:https://www.cnblogs.com/zhjh256/p/5946497.html
Copyright © 2011-2022 走看看