解决JSONObject.toJSONString()输出null的问题
短信预约 -IT技能 免费直播动态提醒
JSONObject.toJSONString()输出null
问题:fastjson的api种,jsonObject.toJsonString(),当值为null时,没打印出来
代码
JSONObject jsonObject = new JSONObject();
jsonObject.put("id",null);
jsonObject.put("class","12");
jsonObject.put("name","");
// 使用默认序列化方式打印
System.out.println(jsonObject.toJSONString());
// 使用指定序列化方式
System.out.println(jsonObject.toJSONString(jsonObject,SerializerFeature.WriteMapNullValue));
输出
{"name":"","class":"12"}
{"id":null,"name":"","class":"12"}
可以发现,使用默认方式时,id没有打印null,指定序列化SerializerFeature.WriteMapNullValue,会打印null
可以看到
看下SerializerFeature属性
名称 | 含义 |
---|---|
QuoteFieldNames | 输出key时是否使用双引号,默认为true |
UseSingleQuotes | 使用单引号而不是双引号,默认为false |
WriteMapNullValue | 是否输出值为null的字段,默认为false |
WriteEnumUsingToString | Enum输出name()或者original,默认为false |
SortField | 按字段名称排序后输出。默认为false |
WriteTabAsSpecial | 把\t做转义输出,默认为false |
PrettyForma | 结果是否格式化,默认为false |
WriteClassName | 序列化时写入类型信息,默认为false。反序列化是需用到 |
不要盲目的使用JSONObject.toJSONString
JSONObject.toJSONString会默认执行你这个要解析的类中的所有get方法,很容易出现空指针异常,而应该换为gson.toJson()这个方法
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341