首页 > 编程语言 >lombok (java 驼峰规范导致的 JSON 序列化问题)

lombok (java 驼峰规范导致的 JSON 序列化问题)

时间:2023-05-15 22:55:08浏览次数:40  
标签:Strig JsonProperty java ATest private JSON 序列化

1、问题描述

  • 有一个接收类,出于某种原因(调用第三方接口)会使用首字母大写的情况
@Data
public class HelloModel{

	private Strig ATest;
	
	private Strig BTest;

}

当我使用这个类接收一个JSON 格式的数据,转换为对应的这个 HelloModel 类时,会出现 ATestBTest 都为null的情况

2、原因解析

由于java的驼峰规范,构成JavaBean都是以小写字母开始,框架和底层会自己去实现这个事情,在debug的时候可以发现,
这两个字段名,都变成了aTest,bTest 这样的小写字母开头,所以在比较对应字段的时候就会出现不匹配的现象,导致结果为null

3、问题解决

采用最简单的json序列化方式,@JsonProperty注解

@Data
public class HelloModel{
	@JsonProperty("ATest")
	private Strig ATest;
	@JsonProperty("Btest")
	private Strig Btest;
}

这样就可以完成序列化

标签:Strig,JsonProperty,java,ATest,private,JSON,序列化
From: https://www.cnblogs.com/herebug/p/17403390.html

相关文章

  • window 通过idea的java工程。生成bat文件
    参考两个大佬的。一、java工程,生成jar包。参考:https://www.cnblogs.com/blog5277/p/5920560.html重点:右键项目名--->选择OpenModuleSetting(默认快捷键F4)--->打开的弹框左侧选择Libraries--->弹框中间点击“+”号--->Java--->在弹出的选择框中选择所依赖的所有jar包(将所有jar......
  • Java通过反射获取Fields、Method、Constructor示例
    1.getFields()和getDeclaredFields()getFields能获取该类和父类(包括Object)public的属性,getDeclaredFields获取该类public和private的属性2.getMethods()和getDeclaredMethods()getMethods能获取该类和父类(包括Object)public的方法,getDeclaredMethods获取该类public和privat......
  • Java学习笔记(十二)
    1、    请描述你理解的对象数组对象数组是一种由多个对象组成的数组,每个元素都是一个对象。在Java中,对象数组可以用来存储同一类型的对象,这些对象可以是预定义的类对象,也可以是自定义的类对象。2、请描述数组的扩容机制扩容其实就是定义一个空间程度更大的数组,然后把原......
  • Java设计模式-简单工厂模式
    简介在软件开发过程中,设计模式是一种被广泛应用的实践,它是通过总结、归纳和提炼出软件设计经验,从而使得设计更加优雅、高效。简单工厂模式是设计模式中最基本、最简单的一种模式,它能够有效地封装对象的创建过程,简化代码结构。简单工厂模式又称为静态工厂方法模式,它是通过定义一......
  • Java设计模式-桥接模式
    简介桥接模式(BridgePattern)是一种结构性设计模式,它的主要作用是将抽象部分和实现部分解耦,使它们可以独立变化而不会互相影响。桥接模式最早由GoF(GangofFour)提出,在《设计模式》一书中有详细的介绍。桥接模式和其他设计模式的区别在于它关注的是如何将抽象和实现分离,从而达到灵......
  • JAVA反序列化-URLDNS分析
    目录0x01URLDNS0x02利用链分析本文基于P大的《java安全漫谈》环境jdk1.7urldns是学习JAVA反序列化的入门利用链0x01URLDNSURLDNS就是ysoserial中⼀个利⽤链的名字,但准确来说,这个其实不能称作“利⽤链”。因为其参数不是⼀个可以“利⽤”的命令,⽽仅为⼀个URL,其能触发的结......
  • 给定一个字符串,用java代码找出其中不含有重复字符的最长子串的长度
    publicintlengthOfLongestSubstring(Strings){intn=s.length(),ans=0;Map<Character,Integer>map=newHashMap<>();for(inti=0,j=0;j<n;j++){if(map.containsKey(s.charAt(j))){i=Math.ma......
  • Java并发(六)----线程start、run、state方法
    1、start与run调用runpublicstaticvoidmain(String[]args){  Threadt1=newThread("t1"){    @Override    publicvoidrun(){      log.debug(Thread.currentThread().getName());//打印线程名称      FileRe......
  • Java并发(五)----线程常见方法总结
    常见方法方法名static功能说明注意start() 启动一个新线程,在新的线程运行run方法中的代码start方法只是让线程进入就绪,里面代码不一定立刻运行(CPU的时间片还没分给它)。每个线程对象的start方法只能调用一次,如果调用了多次会出现IllegalThreadStateException......
  • 4、HDFS-java操作类HDFSUtil及junit测试(HDFS的常见操作以及HA环境的配置)
    目录Hadoop系列文章目录一、pom.xml二、junit测试类三、操作类(帮助类)四、高可用环境的操作类本文编写了java对HDFS的常见操作,并且均测试通过。其功能包含构造conf、设置系统环境变量、创建目录、判断文件是否存在、获取文件/目录的大小等,具体见下图。本文分为四部分,即pom.xml、ju......