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. neo4j存储数据-图数据库

    1. 简介 本文主要介绍neo4j是如何将图数据保存在磁盘上的,采用的是什么存储方式.分析这种存储方式对进行图查询/遍历的影响. 2. 图数据库简介 生产环境中使用的图数据库主要有2种,分别是带标签的 ...

  2. weixueyuan-Nginx缓存6

    https://www.weixueyuan.net/nginx/cache/ Nginx Web缓存配置 Web 缓存可节约网络带宽,有效提高用户打开网站的速度.由于应用服务器被请求次数的降低,也相 ...

  3. VueJs(2)---操作指南

    VueJs(9)---组件(父子通讯) 组件(父子通讯) 一.概括 在一个组件内定义另一个组件,称之为父子组件. 但是要注意的是:1.子组件只能在父组件内部使用(写在父组件tempalte中); 2. ...

  4. Vanity Intermediate 统配符提权

    nmap扫描 ┌──(root㉿kali)-[~] └─# nmap -p- -A 192.168.167.234 Starting Nmap 7.94SVN ( https://nmap.org ) ...

  5. ESP32 VScode环境问题

    vsdcode esp-idf插件安装 报错: Espressif\tools\idf-python\3.11.2\python.exe -m pip" is not valid. (ERR ...

  6. lagrange 插值做题记录

    插值在OI中的应用 - Grice - 博客园 lagrange 插值笔记 - 洛谷专栏 P5850 calc加强版 - 洛谷 Problem - F - Codeforces 2025oifc202 ...

  7. Asp.Net Core3.0 微信退款

    参考文档: 微信支付申请退款API文档:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter8_8_11.shtml   (最新更新时间:2022 ...

  8. QT5笔记: 31. 文件目录操作

    开发的时候,QtCreator F1 查看相关类的信息

  9. QT5笔记:17. QComboBox和QPlainTextEdit

    例子 #include "widget.h" #include "ui_widget.h" #include <QTextBlock> Widget ...

  10. Java开发中long类型转换json传递到前端后精度丢失问题

    将文章的id由long类型手动改为String类型(需要修改表结构); 可以使用Jackson进行序列化解决