写在前面,首先,我用的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注解即可

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java对象转json格式化_Java对象转json JsonFormat注解相关推荐

  1. java中json数据_java中的JSON对象的使用

    申明:没工作之前都没听过JSON,可能是自己太菜了.可能在前台AJAX接触到JSON,这几天要求在纯java的编程中,返回JSON字符串形式. 网上有两种解析JSON对象的jar包:JSON-lib. ...

  2. golang json 格式化输出对象

    Json 形式输出 Golang 如果想要按json字符串的形式输出某个对象,先使用 json.Marshal()函数把对象转换成[]byte数组,然后string(obj)强转成字符串后用%v输出, ...

  3. java对象的内存结构_JAVA 对象内存结构

    JAVA对象内存结构 HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header).实例数据(Instance Data)和对齐填充(Padding). 对象头 markWo ...

  4. java 对象池 博客_Java对象池技术的原理及其实现的小结

    一起学习 Java对象的生命周期大致包括三个阶段:对象的创建,对象的使用,对象的清除.因此,对象的生命周期长度可用如下的表达式表示:T = T1 T2 T3.其中T1表示对象的创建时间,T2表示对象的 ...

  5. java中存在对多个对象加锁的情况_Java对象锁和类锁全面解析(多线程synchronized关键字)...

    最近工作有用到一些多线程的东西,之前吧,有用到synchronized同步块,不过是别人怎么用就跟着用,并没有搞清楚锁的概念.最近也是遇到一些问题,不搞清楚锁的概念,很容易碰壁,甚至有些时候自己连用没 ...

  6. java对象克隆的例子_Java对象克隆

    本篇文章帮大家学习java对象克隆,包含了Java对象克隆使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. Java不提供克隆(复制)对象的自动机制.克隆对象意味着逐位复制 ...

  7. java的头怎么写_JAVA对象布局之对象头(Object Header)

    由于Java面向对象的思想,在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象功能 .在学习并发编程知识synchronized时,我们总是难以理解其实 ...

  8. java对象什么时候回收_Java对象的生命周期与垃圾回收以及四种引用

    创建对象的方式用new语句创建对象. 使用反射,调用java.lang.Class或java.lang.reflect.Constructor的newInstance()实例方法. 调用对象的clon ...

  9. java对象的内存结构_Java对象在内存中的结构分析

    问题:在Hotspot JVM中,32位机器下,Integer对象的大小是int的几倍? HotSpot虚拟机中,对象在内存中的布局分为三块区域:对象头.实例数据和对齐填充,其中对象头又分为:Mark ...

最新文章

  1. Python 的闭包和装饰器
  2. python 常用算法学习(1)
  3. 分享20个漂亮的DIV CSS标准化站点案例
  4. 初探Golang(2)-常量和命名规范
  5. IOS —— 网络那些事(上) - http协议
  6. django 1.8 官方文档翻译:14-1 按需内容处理
  7. Elasticsearch--进阶-match全文检索---全文检索引擎ElasticSearch工作笔记011
  8. BAPI:KBPP_EXTERN_UPDATE_CO, TCODE:CJ30/CJ40 第二部分
  9. 常见的Mule Esb下载地址
  10. 5种电脑定时关机的方法分享
  11. vue项目中使用rem替换px-使用方法-02-问题规整
  12. Unity 日志输出
  13. Machine Reading Comprehension: The Role of Contextualized Language Models and Beyond
  14. Java助农水果平台_金融助农服务平台
  15. 苹果怎么安装未签名的app_App苹果签名有什么作用?
  16. “老赖”王思聪、罗永浩、贾跃亭挡住“发币”诱惑
  17. 前端不止眼前的苟且,还有手中的泡面和西瓜
  18. 第一章 ArcMap、ArcCatalog、 ArcToolbox基础入门操作
  19. 如何在Windows下创建Ramdisk
  20. 模拟量无线采集传输,模拟量模块,0~5v,0-10V,0~20ma,4-20ma

热门文章

  1. word转pdf时,图片错位,乱跑
  2. 计算机基础_程序是怎样跑起来的_04_有棱有角的内存
  3. 产品读书《幕后产品:打造突破式产品思维》
  4. 从今日头条抄袭到京东水逆,为何互联网公司人设会接连崩塌?
  5. 【资料分享】《建筑工程抗震设防分类标准》(GB50223-2008)
  6. visual studio 2019怎么能完美运行vs2017 vs2015的代码?
  7. 苏轼《定风波》词两首
  8. CVPR 二十年,影响力最大的 10 篇论文
  9. numpy的repeat和pytorch的repeat
  10. 大数据查询分析引擎比较