<
>

解决JSONObject.toJSONString()输出null的问题

2022-04-16 21:42:50 来源:易采站长站 作者:

目录
jsONwww.easck.comObject.toJSONString()输出null代码输出看下SerializerFeature属性不要盲目的使用JSONObject.toJSONString

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));

输出

;:"12"}

可以发现,使用默认方式时,id没有打印null,指定序列化SerializerFeature.WriteMapNullValue,会打印null

可以看到

在这里插入图片描述

看下SerializerFeature属性

名称含义
QuoteFieldNames输出key时是否使用双引号,默认为true
UseSingleQuotes使用单引号而不是双引号,默认为false
WriteMapNullValue是否输出值为null的字段,默认为false
WriteEnumUsingToStringEnum输出name()或者original,默认为false
SortField按字段名称排序后输出。默认为false
WriteTabAsSpecial把t做转义输出,默认为false
PrettyForma结果是否格式化,默认为false
WriteClassName序列化时写入类型信息,默认为false。反序列化是需用到

不要盲目的使用JSONObject.toJSONString

JSONObject.toJSONString会默认执行你这个要解析的类中的所有get方法,很容易出现空指针异常,而应该换为gson.toJson()这个方法

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

暂时禁止评论

微信扫一扫

易采站长站微信账号