我不知道如何确定 json 数组中的元素是否为 null。要检查 jsonObject 本身是否为 null,您只需使用:
jsonObject.isNullObject();
但是当对象是一个数组并且我想检查该数组的元素之一是否为空时,这不起作用:
jsonArray.get(i).get("valueThatIsNull") == null;
数组元素也没有可用的 isNull 方法。如何检查 jsonarray 中的值是否为空?知道我正在从 javascript 传递空对象可能会有所帮助。当 null 以 json 格式从 javascript 传递时,它可能在 java 中并不意味着相同的东西,但我也尝试在 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());
}
最佳答案
试试 .isNull()
:
以你的例子为例:
if(!mapItem.isNull("date")) {
//Value is not null
}
但是,要回答这个问题的标题“如何判断 JSONArray 元素是否为空”,请使用 .equals()
因此,检查索引 1 是否为空:
if (!jsonArray.get(1).equals(null)) {
//jsonArray[1] is not null
}
关于java - 如何检查 JSONArray 元素是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12251729/