SpringBoot 返回Json实体类属性大小写的解决

 更新时间:2021年10月14日 12:01:52   作者:IBeanCN  
这篇文章主要介绍了SpringBoot 返回Json实体类属性大小写的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回Json实体类属性大小写问题

总归上述问题Rt,其实今天开发刚遇到,当时找了半天为啥前台传参后台却接收不到,原来是返回的时候返回小写,但是前台依旧大写传参。

查了很多后发现其实是json返回的时候把首字母变小写了,也就是Spring Boot中Jackson的功劳

百度后得@JsonProperty注解完美解决。但与此同时会出现两个问题

如果注解放到属性上,则返回的时候既有大写也有小写,

@JsonProperty("Ao")
private Integer Ao;

Result:{Ao:xxx,ao:xxx}

所以注解放在getter上完美解决,返回只有大写不再自动变为小写的问题。

@JsonProperty("Ao")
public Integer getAo() {
   return Ao;
}

Result:{Ao:xxx}

Json转换大小写的坑

最近搞了一个Springboot+mybatis的框架,往前端进行Json格式转换的时候,发现属性的大写首字母变小写了,这极大的不方便前后一致性,如是网上一堆乱搜,测试了N多情况,算是把问题解决了,不过坑大,记录如下:

1) 如果没有使用fastjson(阿里巴巴出品),使用@JsonProperty("XXXX")的注解方式可以解决问题,XXXX就是转换成Json的属性名,但注意,只有放在getter上才是有效的,直接在属性上加没效果.(这说明spring 默认的jackson类库处理是基于访问器。

2)如果使用了fastjson,就用@JSONField(name="XXXXX")注解方式进行,这个可以放在属性上。不过放在getter,setter上更好。

3)如果同时有两个存在,一般都是fastjson起效果,不过具体情况可以试下,我遇到的就是fastjson起效。当然要强制失效fastjson,就需要在Application类上加注解:@EnableWebMvc.

总结,初次为大规模做Java项目,开发底层框架,感觉Java的很多框架开发者有点死脑筋,命名规范这玩意就是个规范,你做框架底层没必要越厨代庖,强制采用这些规范。做底层的东西就要把自由度留给使用人员,别人才好在此基础上扩展。虽然可以通过一些注解什么的解决问题,但浪费很多时间。

整体上来说,无论是Java的一些框架还是语法本身都跟C#不在一个自由度上,很多时候都是做些没有什么技术含量的东西。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Thread类interrupt interrupted及isInterrupted区别

    Thread类interrupt interrupted及isInterrupted区别

    这篇文章主要为大家介绍了Thread类interrupt interrupted及isInterrupted区别,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • SpringBoot http post请求数据大小设置操作

    SpringBoot http post请求数据大小设置操作

    这篇文章主要介绍了SpringBoot http post请求数据大小设置操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • java实现树形菜单对象

    java实现树形菜单对象

    这篇文章主要为大家详细介绍了java实现树形菜单对象,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • spring boot validation参数校验与分组嵌套各种类型及使用小结

    spring boot validation参数校验与分组嵌套各种类型及使用小结

    参数校验基本上是controller必做的事情,毕竟前端传过来的一切都不可信,validation可以简化这一操作,这篇文章主要介绍了spring boot validation参数校验分组嵌套各种类型及使用小结,需要的朋友可以参考下
    2023-09-09
  • Java多线程文件分片下载实现的示例代码

    Java多线程文件分片下载实现的示例代码

    这篇文章主要介绍了Java多线程文件分片下载实现的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • spring event 事件异步处理方式(发布,监听,异步处理)

    spring event 事件异步处理方式(发布,监听,异步处理)

    这篇文章主要介绍了spring event 事件异步处理方式(发布,监听,异步处理),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • MAVEN的安装配置与IDEA整合超详细教程

    MAVEN的安装配置与IDEA整合超详细教程

    这篇文章给大家介绍了MAVEN的安装,配置与IDEA整合方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,感兴趣的朋友跟随小编一起看看吧
    2021-02-02
  • Java实现AES算法的实例代码

    Java实现AES算法的实例代码

    高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的),本文重点给大家介绍Java实现AES算法的实例代码,感兴趣的朋友一起看看吧
    2022-02-02
  • Java中不可或缺的关键字volatile详析

    Java中不可或缺的关键字volatile详析

    volatile是Java提供的一种轻量级的同步机制,下面这篇文章主要给大家介绍了关于Java中不可或缺的关键字volatile的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • SpringBoot中Controller的传参方式详细讲解

    SpringBoot中Controller的传参方式详细讲解

    这篇文章主要介绍了SpringBoot在Controller层接收参数的常用方法,Controller接收参数的常用方式总体可以分为三类,第一类是Get请求通过拼接url进行传递,第二类是Post请求通过请求体进行传递,第三类是通过请求头部进行参数传递,下面我们来详细看看
    2023-01-01

最新评论