信息发布→ 登录 注册 退出

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

发布时间:2026-01-11

点击量:
目录
  • JSONObject.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));
    

    输出

          {"name":"","class":"12"}
         {"id":null,"name":"","class":"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()这个方法

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

    在线客服
    服务热线

    服务热线

    4008888355

    微信咨询
    二维码
    返回顶部
    ×二维码

    截屏,微信识别二维码

    打开微信

    微信号已复制,请打开微信添加咨询详情!