@JsonProperty注解解析

2023-11-19

1. 概述

来源: 
	@JsonPrpperty是jackson包下的一个注解,详细路径
	(com.fasterxml.jackson.annotation.JsonProperty;)

作用:
	@JsonProperty用在属性上,将属性名称序列化为另一个名称。

例子:
	public class Person{
		@JsonProperty(value = "name")
		private String realName;

	}

拓展:jackson可以理解为java对象和json对象进行转化的工具包。

2. 实例

解释:定义一个实体类,定义一个Controller层,通过post请求传入body,分别验证加和不加@JsonProperty注解的区别。

2.1 引入依赖

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

2.2 创建实体类

package com.gxn.demo.domain;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Objects;

public class Person {
//  先将该注解注释掉
//  @JsonProperty(value = "name")
    private String realName;
    private Integer age;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) 
        	return false;
        Person person = (Person) o;
        return Objects.equals(realName, person.realName) &&
                Objects.equals(age, person.age);
    }

    @Override
    public int hashCode() {
        return Objects.hash(realName, age);
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

2.3 定义Controller,返回结果是realName和age的值

package com.gxn.demo.controller;

import com.gxn.demo.domain.Person;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class PersonController {

    @PostMapping("/name")
    public String getName(@RequestBody Person person) {
        String name = person.getRealName();
        Integer age = person.getAge();
        String res = name + " : " + age;
        return res;
    }

}

2.4 验证结果

  • 未加注解,body中json的key和实体属性一致:

在这里插入图片描述

未加注解,body中json的key和实体属性不一致:
在这里插入图片描述 

加注解,body中json的key和实体属性一致:
在这里插入图片描述 

 在这里插入图片描述

 加注解,body中json的key与注解的value一致::

在这里插入图片描述

3. 总结
通过@JsonProperty注解可以改变实体对应属性名,一旦使用该注解我们在body中传参数的就需要按照注解中value的值来定义key。


————————————————
版权声明:本文为CSDN博主「Archie_java」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43842093/article/details/122463163

 

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

@JsonProperty注解解析 的相关文章

随机推荐

  • 使用决策树进行特征选择

    使用决策树进行特征选择 决策树也是常用的特征选取方法 使用决策树集合 如随机森林等 也可以计算每个特征的相对重要性 这些重要性能够辅助进行特征选择 该方法主要使用信息增益率来进行特征选择 from sklearn import datase
  • Keil的软件仿真和硬件仿真

    一 软件仿真 Keil有很强大的软件仿真功能 通过软件仿真可以发现很多将要出现的问题 Keil的仿真可以查看很多硬件相关的寄存器 通过观察这些寄存器值的变化可以知道代码有没有正常运行 这样可以避免频繁下载程序 延长单片机Flash寿命 开始
  • RNN Pytorch实现——up主:刘二大人《PyTorch深度学习实践》

    b站up主 刘二大人 PyTorch深度学习实践 教程 https www bilibili com video BV1Y7411d7Ys p 6 vd source 715b347a0d6cb8aa3822e5a102f366fe 单层
  • 【2023最新版】Win11: WSL(Ubuntu22.04)使用docker远程容器教程(Windows的Docker Desktop下载安装、迁移到非系统盘、配置国内镜像源、设置 WSL2)

    目录 一 准备工作 1 安装WSL 适用于 Linux 的 Windows 子系统 2 docker简介 来源chatGPT 二 Windows安装 Docker Desktop 1 官网链接 2 安装过程 3 迁移到非系统盘 4 配置国内
  • 怎么用vscode进行单步调试

    1 修改launch文件 version 0 2 0 configurations name gdb Launch type cppdbg request launch program workspaceFolder build my cm
  • springcloud学习记录一、了解微服务

    此学习通过查阅相关资料 自己理解的方式进行总结 没有用太多的官方语言 官方语言一直不喜欢 搞得高大上 其实很简单 就是能装那个啥 看的人头疼 尤其是对新手 如果有人发现有问题请指正 谢谢 一 单机结构 对于一个小项目 并且使用人数不多时 开
  • @注解学习总结

    RestController 相当与 Controller ResponseBody组合使用 其作用均是将方法的结果转化为JSON 格式返回给前端 这点可以从 Postman 中体现 RequestMapping value 和 path
  • QT调试详细操作步骤及案例分析

    目录 QT调试详细操作步骤及案例分析 QT调试详细步骤 1 手动调试 1 1 输入备调试的代码 1 2 设置断点 1 3 单步调试简单介绍 1 4 调试案例 1 4 1 纯C 代码的调试 1 4 2 QT程序的调试 2 使用QDebug进行
  • 在centos中配置linux网络ping时碰到destination host unreachable的问题

    最近装了个VM VirtualBox和CentOS玩Linux 在配置完网络后 只能ping 127 0 0 1 无法ping出本机IP和外网 出现 destination host unreachable 的报错 From 192 168
  • 如何写一篇简洁易懂的测试报告?

    一 什么是测试报告 测试报告是指把测试的过程和结果写成文档 对发现的问题和缺陷进行分析 为纠正软件的存在的质量问题提供依据 同时为软件验收和交付打下基础 二 测试报告的内容 测试报告的内容可以总结为以下目录 首页 引言 目的 背景 缩略语
  • 【C++】通过栈/队列/优先级队列/反向迭代器了解适配器及仿函数

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 stack 实现一个stack 二 queue 实现一
  • C/C++尾插法建立单链表

    思路 一个s指针指向新建节点 一个节点指向尾节点 C 中有引用 写出来很简单 下面给出的是天勤数据结构高分笔记上面的写法 疯狂吐槽这种C和C 混用的方法 include
  • StoreUpgrader$UnexpectedUpgradingStoreVersionException: Not possible to upgrade a store with version

    Caused by org neo4j kernel impl storemigration StoreUpgrader UnexpectedUpgradingStoreVersionException Not possible to up
  • 【IT】计算机体系结构

    https edu 51cto com center course user get study course 解释型语言 在计算机资源受限制的嵌入式计算机上 单片机等 效果不好 因此在嵌入式开发中 更多的还是使用c c 这种 解释型语言
  • 过河卒 蓝桥杯 755

    题目描述 如图 A 点有一个过河卒 需要走到目标 B 点 卒行走规则 可以向下 或者向右 同时在棋盘上的 C 点有一个对方的马 该马所在的点和所有跳跃一步可达的点称为对方马的控制点 例如上图 C 点上的马可以控制 99 个点 图中的 P1
  • java实现rabbitmq消息队列

    1 rabbitmq常用的五种模型 基本消息模型 基本消息模型就是 一个生产者丶默认交换机丶一个队列丶一个消费者 work消息模型 work消息模型就是 一个生产者丶默认交换机丶一个队列丶多个消费者 fanout广播模式 发布 订阅模式 f
  • Powershell无法使用conda activate的问题

    主要引起的原因是Powershell使用Conda init失败 问题主要出现在中文系统中 特别与onedrive开启了 文档同步 有关 可以看到 最后两行生成了配置文件 用以启动conda 并在onedrive上 但是 onedrive中
  • 搭建prometheus+grafana监控系统

    prometheus简介 Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 自2012年成立以来 许多公司和组织都采用了Prometheus 该项目拥有非常活跃的开发人员和用户社区 现在 它是一个独立的开源项
  • 计算机相关专业结业课题推荐及答辩技巧,加关喔!

    计算机相关专业结业课题推荐及答辩技巧 是不是还在为选题而烦恼 本文是提供一些计算机 软件 通信 电子等 相关专业大四选题推荐及一些答辩技巧 供给大家学习和参考 预祝各位看官学业进步 前程似锦 创作不易 帮忙点赞 收藏 好评哦 一 整个学年设
  • @JsonProperty注解解析

    1 概述 来源 JsonPrpperty是jackson包下的一个注解 详细路径 com fasterxml jackson annotation JsonProperty 作用 JsonProperty用在属性上 将属性名称序列化为另一个