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

标签 java json arrays

我不知道如何确定 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/

相关文章:

java - 关于java和flex整合的问题

java - 如何修改IDEA/Android Studio设置中 “try-catch”模板的异常变量默认名称?

java - NewRelic 支持 AWS Lambda 上的 Java 应用程序吗?

c# - ASMX 网络服务中的 JSON 结果

java - 是否可以在 CodenameOne 中实现一个命令,在不使用 URL 的情况下按下按钮后将显示 PDF

objective-c - 如何使用 json-c 格式将视频上传到 youtube?

iphone - 在 iPhone 上将核心数据 NSManagedObject 转换为 JSON?

c++ - 为什么我可以分配一个长度小于数组本身的字符串文字?

javascript - 在 JS 中以编程方式解构数组

java - 将数组复制到另一个数组中