我不知道如何确定是一个居住在一个json数组中的元素为null.要检查jsonObject本身是否为空,只需使用:
jsonObject.isNullObject();
但是当对象是一个数组,并且我想检查该数组的一个元素是否为null时,这不起作用:
jsonArray.get(i).get("valueThatIsNull") == null;
在数组的元素上也没有可用的isNull方法.如何检查jsonarray中的值是否为空?这可能有助于知道我从JavaScript传递一个空对象.也许null并不意味着在java中以json格式传递的同样的东西,但是我也尝试在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()); }