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

 更新时间:2022年02月07日 10:35:30   作者:EmineWang  
这篇文章主要介绍了解决JSONObject.toJSONString()输出null的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

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

相关文章

  • java_object的简单使用详解

    java_object的简单使用详解

    下面小编就为大家带来一篇java_object的简单使用详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 使用Maven搭建SpringMVC项目的步骤(图文教程)

    使用Maven搭建SpringMVC项目的步骤(图文教程)

    本篇文章主要介绍了使用Maven搭建SpringMVC项目的步骤(图文教程),非常具有实用价值,需要的朋友可以参考下
    2017-09-09
  • Java可重入锁ReentrantLock详解

    Java可重入锁ReentrantLock详解

    这篇文章主要介绍了Java可重入锁ReentrantLock详解,ReentrantLock是一个可重入且独占式的锁,是一种递归无阻塞的同步机制,它支持重复进入锁,即该锁能够支持一个线程对资源的重复加锁,除此之外,该锁的还支持获取锁时的公平和非公平性选择,需要的朋友可以参考下
    2023-09-09
  • java实现页面置换算法

    java实现页面置换算法

    这篇文章主要为大家详细介绍了java实现页面置换算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • 基于java 线程的几种状态(详解)

    基于java 线程的几种状态(详解)

    下面小编就为大家带来一篇基于java 线程的几种状态(详解)。小编觉得挺不错的,现在就想给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 常用数字签名算法RSA与DSA的Java程序内实现示例

    常用数字签名算法RSA与DSA的Java程序内实现示例

    这篇文章主要介绍了常用数字签名算法RSA与DSA的Java程序内实现示例,一般来说DSA算法用于签名的效率会比RSA要快,需要的朋友可以参考下
    2016-04-04
  • Java泛型的使用限制实例分析

    Java泛型的使用限制实例分析

    这篇文章主要介绍了Java泛型的使用限制,结合实例形式分析了不能使用java泛型的情况以及泛型使用的相关注意事项,需要的朋友可以参考下
    2019-08-08
  • java读取xml配置参数代码实例

    java读取xml配置参数代码实例

    这篇文章主要介绍了java读取xml配置参数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java 中执行动态表达式语句前中后缀Ognl、SpEL、Groovy、Jexl3

    Java 中执行动态表达式语句前中后缀Ognl、SpEL、Groovy、Jexl3

    这篇文章主要介绍了Java 中执行动态表达式语时的句前中后缀Ognl、SpEL、Groovy、Jexl3的相关资料,需要的朋友可以参考下面文章的详细介绍
    2021-09-09
  • java jvm的知识详细介绍

    java jvm的知识详细介绍

    这篇文章主要介绍了java jvm的知识详细介绍的相关资料,这里对java jvm中的堆内存和栈内存等基础知识做了详细介绍,需要的朋友可以参考下
    2016-11-11

最新评论