如何检查JSONArray元素是否为null

ryandlf:

我不知道如何确定存在于json数组中的元素是否为null。要检查jsonObject本身是否为null,只需使用:

jsonObject.isNullObject();

但是当对象是一个数组并且我想检查该数组的元素之一是否为null时,这将不起作用:

jsonArray.get(i).get("valueThatIsNull") == null;

在数组的元素上也没有isNull方法。如何检查jsonarray中的值是否为null?知道我正在从javascript中传递空对象可能会有所帮助。从javascript以json格式传递null时,也许null在java中的含义并不相同,但是我也尝试过在null周围加上括号,但仍然无法使用。

我发布了一些实际的源代码,以使这一点变得更加清楚。jsonObject是jsonArray的一部分,并且该对象具有多个值,因为它iself是一个对象。

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());
}
ryandlf:

我猜json会将null值作为字符串传递,所以您不能将null作为Java元素进行检查。而是将null值视为字符串,方法如下:

if(!mapItem.getString("date").equals("null")) {
    //Value is not null
}

我已经将原始问题中的代码片段更新为工作版本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章