当前位置: 首页 > news >正文

Jackson 返回前端的 Response结果字段大小问题

目录

1、问题产生的背景

2、出现的现象

3、解决方案

4、成果展现

5、总结

6、参考文章


1、问题产生的背景

        因为本人最近工作相关的对接外部项目,在我们国内有很多程序员都是使用汉语拼音或者部分字母加上英文复合体定义返回实体VO,这样为了能够符合对接方的字段要求。于是在定义返回实体类型需要按照对方要求进行定义。我是发现好些部分银行里面接口定义的字段也有类似情况。最近在对接一个供水平台的对外提供给某市的公共数据管理平台的时候就发现上述描述情况。      

2、出现的现象

       我在按照对应的文档要求定义了相关的返回实体VO,如下图所示。       

         结果在返回的请求响应结果如下图所示:

       这样返回结果肯定不符合预期要求,那如何来解决这种问题呢?最后想到问题应该出在如下两个地方:

      1、我使用Lombok,可能出现在此处

      2、是否因为Bean的属性设置问题原因 

     经过网上查询相关资料,问题就出在Bean的定义属性。参数命名不规范原来的 POJO 的参数有【uCode】,这种命名而且 pojo 是 lombok 注解管理的 导致 jackson 自动转换成小写了。

3、解决方案

      在 pojo 加上 @JsonAutoDetect (fieldVisibility= JsonAutoDetect.Visibility.ANY,getterVisibility= JsonAutoDetect.Visibility.NONE)

     注解解释:     

        @JsonAutoDetect 该注解用来 改变默认的自动检测,标记在类上

        jackson默认大小写敏感,且首字母转小写 用来指定字段、方法的可见性规则          @JsonAutoDetect(fieldVisibility=JsonAutoDetect.Visibility.ANY,getterVisibility=JsonAutoDetect.Visibility.NONE)       

4、成果展现

       经过上面的注解的加入之后,达到了预期的效果。

5、总结

      凡是遇见的问题,一般其他人应该也遇见过,需要自己思考搜索相关的关键字才能找到对应的解决方案,所以解决问题需要抓住问题的关键本质。如此问题需要搜索关键词  jackson 转 jsonjackson 转 json jackson 转 json参数大小写问题  返回字段大小写 不一致参数大小写问题

6、参考文章

       https://my.oschina.net/u/4540973/blog/4657027

      https://www.likecs.com/show-933963.html 

     https://blog.csdn.net/weixin_45502734/article/details/124306296

http://www.lryc.cn/news/37891.html

相关文章:

  • 每天五分钟机器学习:你理解贝叶斯公式吗?
  • C++的入门
  • 数据的存储
  • Linux查看UTC时间
  • SpringBoot修改启动图标(详细步骤)
  • 【每日一题Day143】面试题 17.05. 字母与数字 | 前缀和+哈希表
  • Go 内置运算符 if for switch
  • C语言指针数组实际应用(嵌入式)
  • 常用的Java注解详解
  • 华为OD机试题 - 第 K 个最小码值的字母(JavaScript)| 机考必刷
  • vscode环境配置(支持跳转,阅读linux kernel)
  • zigbee学习笔记:IO操作
  • 华为OD机试题 - 最少数量线段覆盖(JavaScript)| 机考必刷
  • python趣味编程-2048游戏
  • 求解完全背包问题
  • 我们为什么使用docker 优点 作用
  • Python每日一练(20230311)
  • 202109-3 CCF 脉冲神经网络 66分题解 + 解题思路 + 解题过程
  • Aurora简介
  • 【python实操】用python写软件弹窗
  • Ubuntu 常用操作
  • 井字棋--课后程序(Python程序开发案例教程-黑马程序员编著-第7章-课后作业)
  • 谷粒学院开发(三):统一日志、异常及前端准备工作
  • 华为OD机试题 - 招聘(JavaScript)| 机考必刷
  • 关于SQL优化的几点说明
  • 使用高精度秒表StopWatch测试DateTime.Now的精度
  • 【C++】vector的使用及其模拟实现
  • [洛谷-P2585][ZJOI2006]三色二叉树(树形DP+状态机DP)
  • BI技巧丨计算组
  • PMP项目管理项目范围管理