Java对象转json JsonFormat注解
作者:爱喝芒果汁 发布时间:2022-08-27 00:44:09
写在前面,首先,我用的java转json序列化的工具是java开源的jackson。
今天在做后端接口的时候,发现获取的json对象中少了几个属性,因为其他的接口都能得到正确的json,所以很快就找到了问题所在,先上代码
public class ChargeDto implements Serializable {
private static final long serialVersionUID = -4617215025083571608L;
protected Integer cId;
protected String Item;
protected Double Amount;
protected Integer Vcid;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
protected Date CreateTime;
protected String CreateEName;
}
{
"status": 200,
"message": "成功",
"data": [
{
"CreateTime": "2020-05-04 01:41:19"
},
{
"CreateTime": "2020-05-04 02:10:11"
}]
}
是的,这里我的类中只有属性,没有getter、setter方法,所以获取的json中少了一些属性。
解决方法一:后来我将类中的所有属性加上了getter、setter方法之后得到了正确的json对象。
{
"status": 200,
"message": "成功",
"data": [
{
"cId": 1,
"item": "挂号",
"createEName": "医生1",
"createTime": "2020-05-04 01:41:19",
"amount": 5,
"vcid": 1
},
{
"cId": 2,
"CreateTime": "2020-41-04 01:41:38",
"item": "处方结算",
"createEName": "医生1",
"createTime": "2020-05-04 02:10:11",
"amount": 122,
"vcid": 1
}]
}
虽然很快解决了,但是我还是上网查了下原因,然后我查阅知晓对于我用的jackson来说,需要类中有getter方法。是的,虽然我一次性把Setter方法也加上了,但是对于jackson将java对象转json来说,只要有Getter方法就行了。甚至是不需要有属性!
注意:java对象转成json成立的基本条件只需要有get方法!!
然后我发现我一开始虽然丢失了几个属性,但是我也是有属性转为了json的,就是CreateTime。于是我就注意到了我在CreateTime属性上加的注解@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss"),我想着是不是和这个注解有关,于是我将Getter方法删去,在其他属性上加上了注解
public class ChargeDto implements Serializable {
private static final long serialVersionUID = -4617215025083571608L;
protected Integer cId;
protected String Item;
@JsonFormat
protected Double Amount;
@JsonFormat
protected Integer Vcid;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
protected Date CreateTime;
protected String CreateEName;
}
然后在json中成功都得到了该属性,
{
"status": 200,
"message": "成功",
"data": [
{
"Amount": 5,
"Vcid": 1,
"CreateTime": "2020-04-04 01:41:19"
},
{
"Amount": 122,
"Vcid": 1,
"CreateTime": "2020-04-04 01:41:38"
}]
}
所以,解决方法二:在你需要转为json的属性上加上@JsonFormat注解即可
来源:https://www.cnblogs.com/xywang-35/p/12833400.html


猜你喜欢
- name hobbyTom &nb
- 什么是队列结构一种线性结构,具有特殊的运算法则【只能在一端(队头)删除,在另一端(队尾)插入】。分类:顺序队列结构链式队列结构基本操作:入队
- 文章描述这个程序也记不清是什么时候写的了,犹记得那时我还很年轻,偶然从网上看到了这样一个类似的标题(AI五子棋的实现),进去后看到那个是ja
- public static string Escape(string s) &nb
- 一.类与接口的区别类:描述了一个实体,包括实体的状态,也包括实体可能发出的动作。接口:定义了一个实体可能发出的动作。但是只是定义了这些动作的
- 本篇实例内容是关于C#读取CAD文件的,直接看代码//在不使用任务插件的情况下读取DWG文件的缩略图,以便在没有安装AutoCAD的计算机上
- 引言: 在现代的网络应用程序中,进行HTTP请求是一项常见的任务。Apache HttpClient是一个功能强大且广泛使用的Java库,它
- 双色球选号规则红球是1~33选6个,蓝球1~16选1个。它有17721088种排列组合,这个代码实现了如何将一组双色球号码 转换成第n个排列
- ChatGPT的基本介绍ChatGPT是一个用来进行自然语言处理任务的预训练模型。要使用ChatGPT,需要了解以下几点:理解预训练模型:预
- 前言Spring框架对Bean进行装配提供了很灵活的方式,下面归纳一下主要的方式:在XML中进行显示配置在Java中进行显示配置隐式的bea
- (1)编写接口Animal (Animal.java)public interface Animal{ public abstr
- 在系统开发中,需要对请求和响应分别拦截下来进行解密和加密处理,在springboot中提供了RequestBodyAdviceAdapter
- 一、题目描述题目实现:使用套接字实现了服务器端与客户端的通信。运行程序,在服务器端的文本框中输入信息,然后按回车键,客户端就会收到服务器端发
- 情况一:问题idea项目突然无法运行,提示找不到某个类。查看了编译输出目录out,发现没有class文件。尝试解决尝试删除out、重新导入项
- Maven本地jar引用的实现方法有的时候需要在maven工程项目中引用本地的jar,pom.xml配置如下:<dependency&
- 本文实例讲述了C#多线程学习之使用线程池进行多线程的自动管理。分享给大家供大家参考。具体如下:在多线程的程序中,经常会出现两种情况:一种情况
- 现在的模拟器的功能太强大,从蓝牙,传感器等配件到IMEI,Mac,以及手机硬件信息什么都可以模拟为了防止用户利用模拟器模仿真机进行刷单,刷流
- 本文实例讲述了Android开发中4个常用的工具类。分享给大家供大家参考,具体如下:1、土司工具类(Toast管理)/** * Toast统
- 下面给大家介绍下mybatis结果生成键值对的实例代码,具体内容如下所示:在实际应用中我们经常会遇到这样的情况,需要给下拉框赋值,这个时候就
- EL全称 Expression Language(表达式语言),是jsp2.0最重要的特性之一,可以利用EL表达式来访问应用程序中的数据,来