JsonObject的属性与值的判空(Null值)处理方式

 更新时间:2023年12月07日 15:29:22   作者:Stephen·You  
这篇文章主要介绍了JsonObject的属性与值的判空(Null值)处理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

问题现象

之前在项目中遇到一个没有遇到过的问题,就是在使用 == null 来对jsonObject这个对象的id属性进行null值判空时会发生一个问题:

当前端不传入该属性 ({}) 时: jsonObject.get("id") == null 结果为: true

但当前端传入参数null ({"id" : null}) 时: jsonObject.get("id") == null 结果为: false

也就是说当 前端传入参数"id" 不管是否传入 null,  则 jsonObject.get("id") 就不会是 null  !!!!!!

问题分析

一开始,我确实以为JsonObject的判空操作应该和一般的Object对象是一样的,在了解了一下JsonObject这个对象的配置之后,才知道:

原来JsonObject有两个判空方式:

  • 第一种:在前端不传入该属性时:

通过 jsonObject.get("id") == null 进行判空

  • 第二种:在前端传入参数为null值时:

通过 jsonObject.get("orgId").isJsonNull() 方法 来判空.

总结: 其实这两种情况是不同的:

  • 第一种是:前端不传入该属性;

这个时候 jsonObject.get("id") 获取这个属性对象{key:value} 就是null, 因此只能用 == null 来判空!

  • 第二种是:前端传入参数为null值;

这个时候 jsonObject.get("id") 可以获取这个属性对象{key:value}, 只是这个对象的value值为 null, 但 key 依然是 id, 所以这个对象不为null,因此只能用 isJsonNull() 方法 来判空

解决方法

if ( jsonObject.get("id") != null )

改为:

if ( jsonObject.get("id") != null && !jsonObject.get("id").isJsonNull() )

总结

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

相关文章

  • IDEA SSM整合Redis项目实例 附源码

    IDEA SSM整合Redis项目实例 附源码

    今天给大家普及IDEA SSM整合Redis项目实例,包括pom.xml 配置和spring-redis.xml 配置代码,代码也很简单,通过项目实际案例能更好的帮助大家理解,需要的朋友可以参考下
    2021-06-06
  • SpringBoot处理HTTP请求的详细流程

    SpringBoot处理HTTP请求的详细流程

    这篇文章主要介绍了SpringBoot处理HTTP请求的详细流程,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-05-05
  • java实现数字猜拳小游戏

    java实现数字猜拳小游戏

    这篇文章主要为大家详细介绍了java实现数字猜拳的小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • SpringCloudAlibaba整合服务网关GateWay教程

    SpringCloudAlibaba整合服务网关GateWay教程

    文章介绍了Spring Cloud Gateway和Zuul的区别,并详细描述了如何使用Gateway进行服务转发和自定义TokenFilter实现参数拦截访问
    2026-01-01
  • Hadoop之NameNode Federation图文详解

    Hadoop之NameNode Federation图文详解

    今天小编就为大家分享一篇关于Hadoop之NameNode Federation图文详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Mybatis Generator自动生成对应文件的实现方法

    Mybatis Generator自动生成对应文件的实现方法

    这篇文章主要介绍了Mybatis Generator自动生成对应的文件的实现方法,需要的朋友可以参考下
    2017-09-09
  • Java压缩文件工具类ZipUtil使用方法代码示例

    Java压缩文件工具类ZipUtil使用方法代码示例

    这篇文章主要介绍了Java压缩文件工具类ZipUtil使用方法代码示例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-11-11
  • Java基础之教你如何正确运用依赖注入

    Java基础之教你如何正确运用依赖注入

    最近发现很多使用Spring框架的Java代码存在依赖注入方式的误用,甚至是滥用.因此整理了这篇文章,欢迎大家一起探讨,需要的朋友可以参考下
    2021-05-05
  • Mac安装Maven的几种方法小结

    Mac安装Maven的几种方法小结

    本文主要介绍了Mac安装Maven的几种方法小结,主要包括通过Homebrew安装Maven,通过SDKMAN安装Maven和通过官方网站下载安装包安装Maven,感兴趣的可以了解一下
    2024-01-01
  • java利用jieba进行分词的实现

    java利用jieba进行分词的实现

    本文主要介绍了在Java中使用jieba-analysis库进行分词,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03

最新评论