今天在写代码的时候,发现一个问题,代码如下:
Object object_vehicleLocation = jObject_decodedValue.get("vehicleLocation");
注意jObject_decodedValue 这是一个Json对象,但是这个Json对象中有可能有key值"vehicleLocation",
也有可能没有key值"vehicleLocation"。
没有key值"vehicleLocation"好处理,程序也不会报错。 返回的object_vehicleLocation 变量的值是 null ,如下图:
直接判断这个变量是否是null就可以了。
但是如果有key值"vehicleLocation",如果key值对应的value有值很好处理,直接将value值用(JSONObject)前缀进行强转为
JSON对象即可。
但是如果有key,但是这个key在原json中对应的是一个null,例如原 json对象中是:vehicleLocation:null ,
这个时候通过JSON对象的get()方法取出来的值不是简单的 null ,而是一个JsonNull ,如下debug截图:
虽然在变量表的下方都是一个 null ,但是上方的属性不一样,此null 非彼null 。 这是个 JsonNull 。
如果你要判断 object_vehicleLocation 变量是否是null ,需要这样写:
if(object_vehicleLocation == null || JSONNull.getInstance().equals(object_vehicleLocation) ) {
do something 。。。
}
用这个spring框架自带的方法处理这个问题,即 JSONNull.getInstance().equals(变量)
如果对你有用,记得点个赞噢~