JsonNull 和null 的区别 (JSONNull 和 null 的区别)

今天在写代码的时候,发现一个问题,代码如下:

Object   object_vehicleLocation  =  jObject_decodedValue.get("vehicleLocation"); 

注意jObject_decodedValue 这是一个Json对象,但是这个Json对象中有可能有key值"vehicleLocation",

也有可能没有key值"vehicleLocation"。

没有key值"vehicleLocation"好处理,程序也不会报错。 返回的object_vehicleLocation 变量的值是 null ,如下图:

JsonNull 和null 的区别 (JSONNull 和 null 的区别)_第1张图片

直接判断这个变量是否是null就可以了。

但是如果有key值"vehicleLocation",如果key值对应的value有值很好处理,直接将value值用(JSONObject)前缀进行强转为

JSON对象即可。

但是如果有key,但是这个key在原json中对应的是一个null,例如原 json对象中是:vehicleLocation:null  ,

这个时候通过JSON对象的get()方法取出来的值不是简单的 null ,而是一个JsonNull ,如下debug截图:

JsonNull 和null 的区别 (JSONNull 和 null 的区别)_第2张图片

虽然在变量表的下方都是一个 null ,但是上方的属性不一样,此null 非彼null  。 这是个 JsonNull  。

如果你要判断  object_vehicleLocation 变量是否是null  ,需要这样写:

            if(object_vehicleLocation == null || JSONNull.getInstance().equals(object_vehicleLocation) ) {
                         do something 。。。
             }

用这个spring框架自带的方法处理这个问题,即   JSONNull.getInstance().equals(变量) 

如果对你有用,记得点个赞噢~

你可能感兴趣的:(JsonNull 和null 的区别 (JSONNull 和 null 的区别))