fastjson在json字符串转对象时,对象属性为null(Android签
fastjson忽略属性名发布后)
如标题所说,我在使⽤fastjson将json字符串转成对象时,对象使⽤get⽅法获取属性值结果为null。就拿下⾯的jobTime来说,从服务器获取的数据中是有这个值的。
{
...
"jobTime": "2021-07-01 10:00",
...
}
在对象的定义中,变量名与json字符串中的key是相同的,有空构造函数,也有形参包含了jobTime的构造函数,其get/set函数也都符合命名规范(get/set后的第⼀个单词⾸字母⼤写)。
但是在执⾏下⾯的语句后
JSON.parseObject(jsonData, Clazz.class) //Clazz为对象名
再去调⽤getJobTime(),返回的却是null。
当前这个项⽬是Android的,如果不是签名发布的版本,直接编译运⾏,getJobTime()⼜是能正常获取到实际值的。所以就很怪。⽬前我的解决⽅法是将上⾯的语句替换成下⾯的语句,就能正常获取jobTime的值了,不过不知道原因,如果有知道的欢迎在评论区中告诉我下,感激不尽。
JSON.parseObject(jsonData, Clazz.class, Feature.InitStringFieldAsEmpty);
-----------------------------------------------分割线(20210714补充)-----------------------------------------------
今天突然发现,fastjson在将对象转成字符串并发送到服务端时,发送的数据是空的。在仔细查后发现,⼜是fastjson的问题,没有把对象转成相应的字符串,⽽是空的字符串。
在多次尝试后,发现可以通过以下⽅法解决:
1、将所有使⽤过fastjson转字符串的实体类都实现Serializable接⼝
2、在转换成字符串时,使⽤这样的格式:
有更好的解决⽅法的话,欢迎指正。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论