it-swarm.com.de

So überprüfen Sie, ob das JSONArray-Element null ist

Ich kann nicht herausfinden, wie zu bestimmen ist, dass ein Element, das in einem JSON-Array lebt, null ist. Um zu überprüfen, ob das jsonObject selbst null ist, verwenden Sie einfach:

jsonObject.isNullObject();

Wenn das Objekt ein Array ist und ich überprüfen möchte, ob eines der Elemente dieses Arrays null ist, funktioniert dies nicht:

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

Es gibt auch keine isNull-Methode für Elemente eines Arrays. Wie überprüfe ich, ob Werte in einem jsonarray null sind? Es könnte hilfreich sein zu wissen, dass ich ein Null-Objekt von Javascript übergebe. Vielleicht bedeutet null nicht dasselbe in Java, wenn es von Javascript im json-Format übergeben wird, aber ich habe auch versucht, Klammern um null zu setzen, und es funktioniert immer noch nicht.

Ich veröffentliche einen aktuellen Quellcode, um dies klarer zu machen. Das jsonObject ist ein Teil des jsonArray und das Objekt hat mehrere Werte, da es selbst ein Objekt ist.

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

Ich vermute, JSON übergibt Nullwerte als Zeichenfolgen, daher können Sie Null nicht als Java-Element überprüfen. Behandeln Sie stattdessen den Nullwert als Zeichenfolge, indem Sie Folgendes überprüfen:

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

Ich habe das Code-Snippet in der ursprünglichen Frage auf eine funktionierende Version aktualisiert.

14
ryandlf

Versuchen Sie .isNull():

Für Ihr Beispiel:

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

Verwenden Sie jedoch .equals(), um den Titel dieser Frage zu beantworten, "wie festgestellt werden kann, ob ein JSONArray-Element null ist".

So überprüfen Sie, ob Index 1 null ist:

if (!jsonArray.get(1).equals(null)) {
    //jsonArray[1] is not null
}
16
Peter Ajtai

probieren Sie die Methode von JSONArray aus

public boolean isNull (int index)

Tatsächlich wird eine "Null" -String verwendet, die mit dem Inhalt verglichen wird

JSONObject.NULL.equals(this.opt(index));
0
mianlaoshu