2个注解都是为了解决json字符串的某些属性名和JavaBean中的属性名匹配不上的问题。

例子,不使用注解的情况

@Data
public class Routine {private Integer TTS_voice;}
    @PostMapping("/test8")public  Routine  test8(@RequestBody Routine routine){return routine;}

传递参数为null并且返回的结果字段名也不一致。(命名原因jackson会自动帮你转换)

1.@JsonProperty

该注解为jackson包下的,在starter-web启动器下已经存在。

使用方法,在bean属性或方法上加上该注解

@Data
public class Routine {@JsonProperty("TTS_voice")private Integer TTS_voice;}

测试(因为springboot默认的转换方式就是jackson所以不需要做配置)

在使用自定义getset方法时发现会出现重复字段,查看编译过后的@lombok发现生成的方法与自定义的无区别但是不会出现重复字段。

public class Routine {@JsonProperty("TTS_voice")private Integer TTS_voice;public Integer getTTS_voice() {return TTS_voice;}public void setTTS_voice(Integer TTS_voice) {this.TTS_voice = TTS_voice;}
}

出现重复字段解决办法,@JsonProperty改为加在get方法上

public class Routine {private Integer TTS_voice;@JsonProperty("TTS_voice")public Integer getTTS_voice() {return TTS_voice;}public void setTTS_voice(Integer TTS_voice) {this.TTS_voice = TTS_voice;}
}

2. @JSONField

该注解为fastjson包下的,导包

        <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.24</version></dependency>

启动类配置fastjson转换(如果仅仅是内部使用转换json字符串则不需要配置)

    @Beanpublic HttpMessageConverters fastJsonHttpMessageConverters(){//1、先定义一个convert转换消息的对象FastJsonHttpMessageConverter fastConverter=new FastJsonHttpMessageConverter();//2、添加fastjson的配置信息,比如是否要格式化返回的json数据;FastJsonConfig fastJsonConfig=new FastJsonConfig();fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);//附加:处理中文乱码List<MediaType> fastMedisTypes = new ArrayList<MediaType>();fastMedisTypes.add(MediaType.APPLICATION_JSON_UTF8);fastConverter.setSupportedMediaTypes(fastMedisTypes);//3、在convert中添加配置信息fastConverter.setFastJsonConfig(fastJsonConfig);HttpMessageConverter<?> converter=fastConverter;return new HttpMessageConverters(converter);}

使用方法与@JsonProperty一致

@Data
public class Routine {@JSONField(name = "TTS_voice")private Integer TTS_voice;}

需要注意的是在使用这2个注解进行转换时必须使用相应的方法否则不起作用(fastjson、jackson)

fastjson忽略属性注解为@JSONField(serialize = false)

jackson忽略属性注解为@JsonIgnore

Springboot中使用@JsonProperty和@JSONField相关推荐

  1. SpringBoot之:SpringBoot中使用HATEOAS

    HATEOAS是实现REST规范的一种原则,通过遵循HATEOAS规范,可以解决我们实际代码实现的各种个问题.作为java最流行的框架Spring 当然也会不缺席HATEOAS的集成. 本文将会通过一 ...

  2. SpringBoot 中使用 HATEOAS

    简介 HATEOAS 是实现 REST 规范的一种原则,通过遵循 HATEOAS 规范,可以解决我们实际代码实现的各种个问题.作为 java 最流行的框架 Spring 当然也会不缺席 HATEOAS ...

  3. 在SpringBoot中使用Spring Session解决分布式会话共享问题

    在SpringBoot中使用Spring Session解决分布式会话共享问题 问题描述: 每次当重启服务器时,都会导致会员平台中已登录的用户掉线.这是因为每个用户的会话信息及状态都是由session ...

  4. SpringBoot 中 JPA 的使用

    前言 第一次使用 Spring JPA 的时候,感觉这东西简直就是神器,几乎不需要写什么关于数据库访问的代码一个基本的 CURD 的功能就出来了.下面我们就用一个例子来讲述以下 JPA 使用的基本操作 ...

  5. 难以想象SpringBoot中的条件注解底层居然是这样实现的

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源 | https://urlify.cn/bm2qqi Spr ...

  6. 面试:SpringBoot中的条件注解底层是如何实现的?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源 | https://urlify.cn/bm2qqi Spr ...

  7. springboot yml怎么建常量_【Java】SpringBoot 中从application.yml中获取自定义常量

    由于这里我想通过java连接linux,connection连接需要host.port.username.password及其他路径等等.不想每次修改的时候都去改源文件,所以想写在applicatio ...

  8. Springboot中给图片添加文字水印

    Springboot中给图片添加文字水印 工作中遇到给图片添加文字水印的需求,记录下来方便之后查阅 需求内容: 给一张图片添加指定文字水印,使一张图片上有多个水印内容,并且设定一个水印开关,可指定是否 ...

  9. 你知道如何在springboot中使用redis吗

    特别说明:本文针对的是新版 spring boot 2.1.3,其 spring data 依赖为 spring-boot-starter-data-redis,且其默认连接池为 lettuce ​  ...

最新文章

  1. R语言数据热力图绘制实战(基于原生R函数、ggplot2包、plotly包)
  2. 最长公共子序列(LCS问题)
  3. python中类的嵌套_python中的嵌套类 | 学步园
  4. flyway数据迁移_使用Flyway在Java EE中进行数据库迁移
  5. linux dd iflag oflag,centos – dd oflag =直接5倍速
  6. 红帽企业版linux 7.4更新启动,红帽Linux企业版7.4 淘汰Btrfs文件系统
  7. 自定义behavior-仿华为应用市场
  8. 实验一 分治与递归—整数划分 java实现
  9. AI智能双标题插件+内容伪原创插件集成
  10. 人声歌姬语音合成器+72个歌手音源拓展 – YAMAHA Vocaloid 5 ESV 5.0.3 + LIBRARIES MacOS
  11. PostGIS几何图形操作
  12. P7369 [COCI2018-2019#4] Elder 题解
  13. 图片怎样加贴纸?这些方法值得一试
  14. 十六.Elasticsearch Adjacency Matrix Aggregation
  15. 移动设备软件开发测试
  16. 安卓 View 开发 绘制尺子
  17. 巧算24点C语言程序设计,巧算24点??
  18. jconsole是否可以在生产环境使用_运用Jconsole监控JVM
  19. 02-微信小程序开发-模板与配置
  20. NTN(三) Timing

热门文章

  1. 计算机室的校规英语翻译,我们学校的校规英语作文含翻译(通用5篇)
  2. linux内核vmlinux的编译过程(七)
  3. cookies设置以及作用范围
  4. LVGL task任务系统(3)
  5. mysql 升级percona_MySQL Study之--Percona Server 5.5升级5.6
  6. 手术的流仪_手术室仪器设备简介
  7. 论文的总字数和查重字数有区别吗?
  8. c4d-创建参数几何体与可编辑对象-3
  9. rancher安装elasticsearch6.4.0的head插件
  10. TARS 染色日志|收集记录特定日志