当前位置: 首页 > 面试题库 >

如何检查JSONArray元素是否为null

柴博
2023-03-14
问题内容

我不知道如何确定存在于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());
}

问题答案:

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

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

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



 类似资料:
  • 我将一些代码从Gson改为Jackson,在那里我必须检查当前元素的类型是否是原语。 我可以用Gson做这样的事情: 在Jackson中,Json节点类型是

  • 问题内容: 我试图仅使用jQuery在HTML元素为空的情况下调用函数。 像这样: 问题答案: 编辑: 正如某些人指出的那样,浏览器对空元素的解释可能会有所不同。如果您想忽略不可见的元素(例如空格和换行符)并使实现更加一致,则可以创建一个函数(或仅使用其中的代码)。 您也可以将其放入jQuery插件,但是您知道了。

  • 问题内容: 在Swift中,如何检查数组中是否存在元素?Xcode没有针对,,或的任何建议,并且快速搜索本书不会发现任何结果。知道如何检查吗?我知道有一种方法可以返回索引号,但是有没有一种方法可以返回像ruby一样的布尔值? 我需要的示例: 问题答案: 斯威夫特2、3、4、5: 是(用于元素序列的) 协议扩展方法 ,而不是早期版本中的全局方法。 备注: 该方法要求序列元素采用协议。 如果序列元素是

  • 问题内容: 示例:我正在检查是否存在像这样的数组元素: 但是,我不断收到此错误: 当然,我第一次想要实例时,$ instances不会知道密钥。我想我对可用实例的检查是错误的? 问题答案: 您可以使用语言构造或函数。 应该更快一些 (因为它不是函数) ,但是如果元素存在并且具有value,则将返回false 。 例如,考虑以下数组: 和这三个测试,依赖于: 第一个会得到您( 该元素存在,并且不为n

  • 我目前正在使用playright/Python/Pytest,我正在尝试将用户登录作为特定类型的用户角色,然后检查各种按钮是否可见或隐藏。 我正在使用页面对象,并为每个按钮元素设置了属性,即。 然后我使用一个验证方法的可见按钮: 这可以很好地工作,并将测试中的断言传递回true。 然后,我尝试使用以下方法对隐藏值执行相同操作: 但是我得到了这个错误——等待选择器“xpath=//h3[normal

  • 在Swift中,如何检查数组中是否存在元素?Xcode没有关于、或的任何建议,并且在这本书中快速搜索没有任何结果。知道怎么查这个吗?我知道有一个方法返回索引号,但是有没有一个方法像Ruby的那样返回一个布尔值? 我需要的示例: