Java实体类(驼峰)映射到json数据(下划线)

  • 由于经常需要接收前端的json数据,而json数据一般都是使用下划线命名的。后端又不太建议使用map接收,所以就需要用到使用自定义类来接收(如果参数过少,可以考虑使用内部类,将所有参数类写到一个大类中)

  • 使用@JsonProperty@JsonAlias

    • @JsonProperty 直接定义成别名
    • @JsonAlias添加别名的意思
  • 例如:

    @Data
    public class MyRequestParam { @Data
    public static class TestParam { // @JsonAlias("test_flag")
    @JsonProperty("test_flag")
    private boolean testFlag; }
    }

使用@RequestBody MyRequestParam.TestParam flag来接收json参数时候,只能接收到test_flag的值(使用true测试,因为boolean值没有=false),使用testFlag作为json字段的键是接收不到的。

而注解@JsonAlias("test_flag")testFlagtest_flag做键都可以接收到。


返回json数据时候,也即使用对象或者result类中的object类型返回对象数据时候:

  • @JsonProperty也会起作用
  • @JsonAlias只会在接收时候起到起小名的作用。

注:使用@JsonProperty时候,如果使用fastjson工具类进行处理,比如:

JSON.toJSONString(obj);
JSONObject.toJSONString(obj);

出来的结果依旧是testFlag

当然fastjson对于这种情况也给出了一个注解,那就是@JSONField(name = "test_flag"),在属性上面添加注解,在使用json工具时候也可以对应转成想要的字段名了。


总结:

  • @JsonProperty 在接收前端和返回给前端字段时候起作用且只能使用定义的别名
  • @JsonAlias 只在接收前端数据数据时候起作用且本身名字和定义的别名都可以使用。
  • @JSONField(name = "name") 当需要使用json工具类进行转json字符串时候起作用。

Java实体类如何映射到json数据(驼峰映射到json中的下划线)的更多相关文章

  1. 利用在线工具根据JSon数据自动生成对应的Java实体类

    如果你希望根据JSon数据自动生成对应的Java实体类,并且希望能进行变量的重命名,那么“JSON To Java”一定适合你.(下面的地址需要FQ) https://jsontojava.appsp ...

  2. xml文档的解析并通过工具类实现java实体类的映射:XML工具-XmlUtil

    若有疑问,可以联系我本人微信:Y1141100952 声明:本文章为原稿,转载必须说明 本文章地址,否则一旦发现,必追究法律责任 1:本文章显示通过 XML工具-XmlUtil工具实现解析soap报文 ...

  3. 在线数据库表(sql语句)生成java实体类工具

    相信每个做java开发的读者,都接触过SQL建表语句,尤其是在项目开发初期,因为数据库是项目的基石. 在现代项目开发中,出现了许多ORM框架,通过简单的实体映射,即可实现与数据库的交互,然而我们最初设 ...

  4. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-6.Mysql逆向工程效率神器之使用IDE自动生成Java实体类

    笔记 6.Mysql逆向工程效率神器之使用IDE自动生成Java实体类     简介:实战使用IDE根据Mysql自动生成java pojo实体类                  1.IDEA连接数 ...

  5. 利用JAXB实现java实体类和xml互相转换

    1.应用场景 在使用WebService实现数据上传下载,数据查询时,可以利用JAXB实现java实体类和xml互相转换 2.Demo 2.1 student.java 实体类,包含list(set同 ...

  6. Mysql逆向工程效率神器之使用IDE自动生成Java实体类

    Mysql逆向工程效率神器之使用IDE自动生成Java实体类 简介:实战使用IDE根据Mysql自动生成java pojo实体类 1.IDEA连接数据库 菜单View→Tool Windows→Dat ...

  7. 解析java实体类

    对java实体类的众多理解: A .就是属性类,通常定义在model层里面 B. 一般的实体类对应一个数据表,其中的属性对应数据表中的字段. 好处: 1.对对象实体的封装,体现OO思想. 2.属性可以 ...

  8. JDBCUtils,根据当前MySQL数据库下面的表生成java实体类

    自己简单写的JDBCUtils,可以根据当前数据库下面的表生成java实体类,代码萌新,请多多包涵. 初始化配置: //驱动程序名//不固定,根据驱动 static String driver = & ...

  9. 我写了一个java实体类,implements了Serializable接口,然后我如何让serialversionUID自动生成

    写了一个java实体类,implements了Serializable接口,让serialversionUID自动生成方法: 1.点击类旁边的警告符号: 2.选择Add generated seria ...

  10. MyEclipse 利用反向功能生成Java 实体类

    1.Window -> Open Perspective -> MyEclipse Database Explorer 到DB Broswer界面 2.右键 -> New,新建一个数 ...

随机推荐

  1. CAS实现原理

    一.什么是CAS? 在计算机科学中,比较和交换(Conmpare And Swap)是用于实现多线程同步的原子指令. 它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为新 ...

  2. Shenzi pg walkthrough Intermediate window

    nmap └─# nmap -p- -A -sS -T5 192.168.218.55 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-16 ...

  3. Hetao P1169 点集 题解 [ 黄 ][ 线性dp ]

    点集 题解 一道非常傻逼,非常傻逼的暴力题,一点都不优雅,这能放普及 T4 真是开了眼了. 本题难点主要就是在时间复杂度的计算上,只要算对了并且有勇气去打就能 AC . 首先发现能形成一个点集,当且仅 ...

  4. mysqldump从mysql迁移数据到OceanBase

    使用mysqldump导出数据 /usr/bin/mysqldump --single-transaction -B employees -S /data/mysql/mysql.sock -uroo ...

  5. Dev Express WPF 在当前界面显示进度加载等待信息

    执行耗时任务时,为提高用户体验,一般会添加进度状态信息.Dev Express 的 LoadingDecorator 可以实现在当前界面中显示进度信息. 效果图如下: 默认 LoadingDecora ...

  6. 奥特曼autMan对接QQ机器人框架go-cqhttp的详细教程

    前言 node-onebo用pm2,screen守护都不稳定,node-onebot扫码后ctrl+c,pm2没守护直接掉了,screen只能守护几个小时.因为服务器地区与你常登q的位置不同,时常有密 ...

  7. 解决Typecho文章cid不连续的教程

    Typecho下文章编号(cid)不连续,虽然不影响什么,也无关紧要,但是对于有强迫症的人(比如我)来说,真的是无法忍受.还好有大佬提供了解决办法. 将以下代码保存为php文件,上传至网站根目录,在浏 ...

  8. 有关C++程序设计基础的各种考题解答参考汇总

    早先年考研的主考科目正是[算法与数据结构],复习得还算可以.也在当时[百度知道]上回答了许多相关问题,现把他们一起汇总整理一下,供读者参考. [1] 原题目地址:https://zhidao.baid ...

  9. Flink学习(一) 行情介绍

    想进大厂,必须掌握 Flink 技术!!! 随着大数据时代的发展.海量数据的实时处理和多样业务的数据计算需求激增,传统的批处理方式和早期的流式处理框架也有自身的局限性,难以在延迟性.吞吐量.容错能力, ...

  10. Windows上安装MySQL详细教程

    1.MySQL简介 MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系 ...