我弄不清如何确定位于JSON数组中的元素是否为null。要检查jsonObject本身是否为null,只需使用:
jsonObject.isNullObject();
但是当对象是一个数组且我想检查该数组中的某个元素是否为null时,以下代码不起作用:
jsonArray.get(i).get("valueThatIsNull") == null;
数组元素上也没有isNull方法。如何检查jsonarray中的值是否为null?可能有助于了解我是从javascript传递一个null对象。也许当从JSON格式的Javascript传递变量到Java时,null表示的含义不同,但我尝试了在null周围加括号,它仍然不起作用。
我发布一些实际源代码以帮助更好地理解。jsonObject是jsonArray的一部分,因为它本身是一个对象,所以该对象具有多个值。
JSONObject mapItem = jsonArray.getJSONObject(i);
int id = mapItem.has("id") ? mapItem.getInt("id") : -1;
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date = null;
Date sqlDate = null;
if(mapItem.has("date")) {
String dateStr = mapItem.getString("date");
if(!dateStr.equals("null")) {
date = dateFormat.parse(mapItem.getString("date").substring(0, 10)); //Convert javascript date string to java.
sqlDate = new Date(date.getTime());
}