加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何检查JSONArray元素是否为空

发布时间:2020-12-14 05:20:10 所属栏目:Java 来源:网络整理
导读:我不知道如何确定是一个居住在一个json数组中的元素为null.要检查jsonObject本身是否为空,只需使用: jsonObject.isNullObject(); 但是当对象是一个数组,并且我想检查该数组的一个元素是否为null时,这不起作用: jsonArray.get(i).get("valueThatIsNull") ==
我不知道如何确定是一个居住在一个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());
}

解决方法

我猜json将null值作为字符串传递,因此您不能将null作为java元素.相反,将空值视为字符串,方法如下:
if(!mapItem.getString("date").equals("null")) {
    //Value is not null
}

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读