当前位置:   article > 正文

(已解决)JsonObject的属性与值的判空(Null值)处理_jsonobject判空

jsonobject判空

目录

问题现象:

问题分析:

解决方法:


问题现象:

之前在项目中遇到一个没有遇到过的问题,就是在使用 == 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() )

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/611961
推荐阅读
相关标签
  

闽ICP备14008679号