Ich erhalte diesen LogCat:
%Vor%Hier ist Code:
%Vor%Hier ist der Kontext:
In PHP verwende ich die Gesamtzahl der Zahlen in einer Spalte in einer MySQL-Tabelle. Wenn IRGENDEINE Zeilen vorhanden sind, sendet es einen Durchschnitt der darin enthaltenen Daten zurück und codiert es, und Java liest es als JSON-Objekt auf. Aber manchmal gibt es Fälle, in denen eine Tabelle 0 Zeilen haben kann, also bekomme ich dieses JSON-Objekt:
%Vor% Meine app stürzt dann ab und das LogCat
ist wie oben gesehen.
Das String
scheint sich nicht darum zu kümmern, ob es ein Null-JSON-Objekt aufnimmt, aber die App stürzt ab, wenn ich Float.valueOf(theString)
mache.
Eine weitere Randnotiz, ich habe versucht, diesen Weg zu testen:
%Vor% Aber es scheint die Zeichenfolge niemals als null zu lesen. Ist es in diesem Fall tatsächlich nicht null
?
Verwenden Sie die folgende Methode von JsonObject
, um zu überprüfen, ob ein Wert für einen Schlüssel null ist.
Diese Methode wird verwendet, um Null gegen einen beliebigen Schlüssel zu prüfen, oder wenn für den Schlüssel kein Wert vorhanden ist.
Verwenden Sie das folgende Snippet
%Vor% parseFloat()
löst eine Ausnahme aus, wenn es null
empfängt.
Überprüfen Sie auf Null, bevor Sie den Wert analysieren,
%Vor% Wenn der Wert von AverageRating
tatsächlich eine Zahl ist, dann sollte die Entität, die JSON generiert, diese nicht als Zeichenfolge in den JSON einfügen. Wenn für das Feld kein Wert vorhanden ist, sollte das Feld nicht vorhanden sein. Wenn es ein Wert für das Feld gibt, sollte es eine Zahl sein.
Wenn das stimmt, könntest du damit umgehen,
%Vor% Andere Beiträge haben vorgeschlagen, einfach NumberFormatException
zu fangen. Dies ist nur dann richtig, wenn Sie zu jedem Zeitpunkt einen gültigen doppelten Wert im Feld erwarten und dies ansonsten als außergewöhnlich betrachten. Wenn Sie wissen / erwarten, dass das Feld manchmal abwesend sein wird, gilt es nicht als Ausnahmezustand.
das sagte Null-Wert wie Schlüssel als Json-Wert überprüfen.