欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何处理JSONObject.toJSONString返回null的情况

最编程 2024-07-27 20:17:59
...

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()这个方法

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

推荐阅读