时间:2021-05-20
写在前面,首先,我用的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;}是的,这里我的类中只有属性,没有getter、setter方法,所以获取的json中少了一些属性。
解决方法一:后来我将类中的所有属性加上了getter、setter方法之后得到了正确的json对象。
虽然很快解决了,但是我还是上网查了下原因,然后我查阅知晓对于我用的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注解即可
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
导入maven依赖com.fasterxml.jackson.corejackson-databind2.11.21、java对象转json@Testpubli
一、java普通对象和json字符串的互转java对象---->json首先创建一个java对象:publicclassStudent{//姓名privateS
本文实例讲述了js实现的xml对象转json功能。分享给大家供大家参考,具体如下:支持无限级别xml结构对象转json,并且支持任意标签属性转json(兼容ie
1、django的model转json对象。1.1、单个modle转换,返回json对象:sqlOrder=get_object_or_404(SqlOrder
本文实例讲述了phparray转json及java转换json数据格式操作。分享给大家供大家参考,具体如下:phparray转json数据$arr=array(