jackson学习-@JsonValue的用法

2023-05-16

jackson学习-JSON相关注解

在实际开发过程中对于对象转json有很多的工具类,这里使用的是jackson

springboot 中jackson的用法

1 springboot工程本身就集成了jackson 只要是引入

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

这个pom的可以直接使用
springboot @RestContorller 注解转化json 底层使用的也是jackson

2 其他工程使用jackson主要引入的pom

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.6</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.6</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.8.6</version>
        </dependency>

实际上只要引入pom

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.6</version>
        </dependency>

就可以了包含了其他两个包

一、对于枚举转化为json

1 在项目中经常使用到枚举,对于枚举如果我们不做处理直接转化为json

public enum FlagDeleteEnum implements CommonEnum {

    NO(0, "未删除"), YES(1, "已删除");
    final int code;
    final String msg;

    FlagDeleteEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }
   // @JsonValue
    public String getMsg() {
        return msg;
    }

    public static FlagDeleteEnum valueOf(int code) {
        return CommonEnum.valueOf(FlagDeleteEnum.class, code);
    }
}

测试
在这里插入图片描述
结果
在这里插入图片描述
可以看到只显示枚举NO 并不是需要的实际code 或者是msg

2 当把@JsonValue 注释放开后 实际输出的结果是
在这里插入图片描述
ps:只要在想要属性的get方法上使用@JsonValue 就可以在转化成json的时候获取需要的值

二 、对象转化为json

1 对象的使用跟枚举是一样的
在需要的属性的get方法上添加@JsonValue 那么就可以在转化成json获取自己需要的值
在这里插入图片描述
ps:这里暂时只做过一个类使用一个@JsonValue注解的场景
@JsonValue 更多的是想Map中获取key-value中某一个的操作

三、JSON其他注解

Jackson提供了一系列注解,方便对JSON序列化和反序列化进行控制,下面介绍一些常用的注解。
@JsonIgnore 此注解用于属性上,作用是进行JSON操作时忽略该属性。
@JsonFormat 此注解用于属性上,作用是把Date类型直接转化为想要的格式,如@JsonFormat(pattern = “yyyy-MM-dd HH-mm-ss”)。
@JsonProperty 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty(“name”)。
在这里插入图片描述
测试结果
在这里插入图片描述
参考文档 https://www.cnblogs.com/winner-0715/p/6109225.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jackson学习-@JsonValue的用法 的相关文章

随机推荐

  • 关于web安全问题解决方案

    启用了不安全的HTTP方法 xff08 禁用put delete调用方式 xff0c 尽量只使用post方式 内网可以用get xff09 危害 xff1a 这些方法表示可能在服务器上使用了 WebDAV 由于dav方法允许客户端操纵服务器
  • ubuntu换源

    以阿里的源为例 首先去这个网页 xff0c 找到你对应版本的源https developer aliyun com mirror ubuntu spm 61 a2c6h 13651102 0 0 3e221b118WiEjq ustc xf
  • 升级powershell7

    升级powershell7 搜索软件包 winget search powershell 升级 winget span class token function install span Microsoft PowerShell 应该在路径
  • 最全的百度网盘搜索引擎

    1 易查搜索 xff08 https so acurd com xff09 推荐指数 43 资源聚合做的比较好的一个网站 xff0c 也是最常用的一个网站 xff0c 据up主说有脚本会定时检测每个搜索引擎 xff0c 不通的或者服务器挂的
  • 使用ffmpeg对视频指定时间点加入指定音频和gif动图 实现水印旋转

    为了丰富文章 xff0c 本文也会演示一些动画效果 xff0c 如跑马灯效果 xff0c 淡入淡出等效果 在上一篇文章中 xff0c 我们使用了把gif图片转化为mov透明底的视频 xff0c 使用ffmpeg画中画的滤镜效果 xff0c
  • 解决在本地不能访问es服务器的问题

    背景 我们有一台服务器 xff0c 40 163服务器 xff0c 大家的代码都是在这一台机器上面执行 xff0c 使用idea自带的ftp功能 xff0c 在163服务器 xff0c 我们可以访问mysql redis es等服务 xff
  • mac安装graphviz的一些曲折经历(同样使用其他情况)

    我之前是Ubuntu用户 xff0c 后来用了macOS xff0c 但是发现macOS的包管理工具不好用 xff0c 偶尔会有些软件安装不上 xff0c 网上查呢也不一定查到结果前台我调试golang的代码 xff0c 想要下载graph
  • 秒杀要不要用锁?五种方案的代码实践和超卖演示

    https www jianshu com p a2bd89e0d24b 工欲善其事必先利其器 xff0c 我们先来装一下相关工具 jmeter 我是在mac演示的 xff0c 所以我先安装一下brew ruby e span class
  • golang入门微服务

    什么是微服务 微服务 xff0c 又称微服务架构 xff0c 是一种架构风格 xff0c 它将应用程序构建为以业务领域为模型的小型自治服务集合 就像我们要写一本书 xff0c 一共有三个章节 xff0c 为了敏捷开发 xff0c 我们让三个
  • 什么是内存?什么是内存逃逸?怎么做内存逃逸分析

    内存 平时我们在电脑上听歌 xff0c 聊天 xff0c 或者启动某个程序 xff0c 那么这个启动过程 xff0c 其实就是把程序从硬盘读入到内存中去 就像安卓手机 xff0c 内存不够了很卡 xff0c 杀掉几个软件 xff0c 内存就
  • go继承nacos配置中心并读取配置信息

    配置中心 为什么需要配置中心 平时我们写一个demo的时候 xff0c 或者说一个单体的应用 xff0c 都会有一个配置文件 xff0c 不管是 json文件或者yaml文件 xff0c 里面包含了redis mysql es等信息 xff
  • 这些神仙问题,整垮了chatGpt

    垮掉 xff0c 全部垮掉 今天刚上了一个chat聊天功能 xff0c 网友们就不甘落后 xff0c 纷纷展示了自己的技能 分分钟给我整垮了 神仙问题 玉皇大帝住在平流层还是对流层 xff1f 空腹的时候可以吃饭吗 xff1f 自来水不能直
  • Qt主窗口:(QMenuBar)创建菜单,状态栏(QStatusBar)使用

    mainWindow h ifndef MAINWINDOW H define MAINWINDOW H include lt QMainWindow gt include lt qmenu h gt include lt qaction
  • 【shell实战之编写备份脚本-12】

    文章目录 第一种方式 xff1a 使用Mysqldump逻辑备份1 备份多个数据库 分库备份 取出要备份的多个数据库赋值给一个变量 xff0c 然后利用循环的方式进行多库备份2 备份某个数据库的多表 xff1a 3 分库分表备份 xff1a
  • mysql 分组之后 取分组之后最新的数据

    一 数据表设计 二 查询场景 统计每门课的考试次数 最新一次考试的时间 最新一次考试的录入成绩的老师 1 统计没门课的考试次数 考试次数统计 select project 39 科目 39 count project 39 考试次数 39
  • java读取jar包中的文件

    最近遇到读取不到文件的问题 xff0c 开发测试一切正常 xff0c 打包发版后读取不到文件的情况 之前文件路径是相对路径 xff0c 在jar包中其实是读取不到的 这时候需要使用类装载器 ClassLoader 进行读取配置文件 1 Cl
  • idea打包可执行的jar与Error: Invalid or corrupt jarfile问题

    build前的设置 1 在菜单中选择 File gt project structure 2 选择Artifacts xff0c 点击 34 43 34 xff0c 选择jar gt from modules with dependenci
  • 获取二进制数中bit位的值示例(移位、与操作)

    二进制是计算技术中广泛采用的一种数制 二进制数据是用0和1两个数码来表示的数 它的基数为2 xff0c 进位规则是 逢二进一 xff0c 借位规则是 借一当二 一个字节通常包括8个位即1Byte 61 8Bit 我们可以将这8位从左到右看作
  • QT 实现点击按钮显示下拉菜单 QMenu

    想实现点击按钮显示下拉菜单的效果 xff1a 初始化下拉菜单 QMenu menu 61 new QMenu this actionIpSet 61 new QAction 34 按钮1 34 this actionAuthorize 61
  • jackson学习-@JsonValue的用法

    jackson学习 JSON相关注解 在实际开发过程中对于对象转json有很多的工具类 xff0c 这里使用的是jackson springboot 中jackson的用法 1 springboot工程本身就集成了jackson 只要是引入