栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

#fastjson-1.2.47.jar包中String data = JSONObject.toJSONString(object)转化后为null问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

#fastjson-1.2.47.jar包中String data = JSONObject.toJSONString(object)转化后为null问题

fastjson-1.2.47.jar包中String data = JSONObject.toJSonString(object)转化后为null问题 原因分析: 1.json包引错了,正确包为:
import com.alibaba.fastjson.JSONObject;
2.当该类中某些属性值为空,json转化涉及序列化,会默认将没有值的属性舍去,这就是出现部分转化的原因,解决方案:
// 将对象中为空的字段 不忽略,value从null转换为“”
JSONObject.toJSonString(object, SerializerFeature.PrettyFormat, SerializerFeature.WriteNullStringAsEmpty);
3.被转化的类中的属性权限设置为了private私有,正确写法为几种情况:

该类的所有属性权限为public时,不需要再写get,set方法;

该类的属性权限不为public时,必须写对应的get,set方法;

这个坑我弄了近一小时才排查出来,是权限私有的坑,进一步找原因发现json转化的底层涉及到反射技术,对于public修饰的属性,可以通过json这个与被转化类毫无血缘关系的类访问到,对于非public修饰的,只能通过得到该类的get方法,再由get方法去访问到对应属性,所以这就能解释为啥转化后出现null的现象了。

最后吐槽一哈,这个坑我服了,愣是一步一步分析,试着一点一点改发现的,网上查了一些资料,就是我上边的1,2情况,这里简单的总结一哈他们的解决思路。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/764345.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号