ich diesen LogCat bin immer:Prüfung auf null JSON-Objekte in Java/Android
06-22 15:30:53.731: E/AndroidRuntime(2389): java.lang.NumberFormatException: Invalid float: "null"
06-22 15:30:53.731: E/AndroidRuntime(2389): at java.lang.StringToReal.invalidReal(StringToReal.java:63)
06-22 15:30:53.731: E/AndroidRuntime(2389): at java.lang.StringToReal.parseFloat(StringToReal.java:310)
06-22 15:30:53.731: E/AndroidRuntime(2389): at java.lang.Float.parseFloat(Float.java:300)
06-22 15:30:53.731: E/AndroidRuntime(2389): at java.lang.Float.valueOf(Float.java:337)
Hier Code:
try
{
jObject = new JSONObject(result);
starAvg = jObject.getString("AverageRating");
}
ratingsBar = (RatingBar) findViewById(R.id.theRatingBar);
ratingsBar.setRating(Float.valueOf(starAvg));
Hier ist der Kontext:
In PHP, ich bin Durchschnittszahlen 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, so dass ich dieses JSON-Objekt:
{"AverageRating":null}
Meine App stürzt dann ab und die LogCat
ist wie oben zu sehen.
Die String
scheint nicht zu kümmern, wenn es ein Null JSON-Objekt abruft, aber die App stürzt ab, wenn ich Float.valueOf(theString)
mache.
Eine andere Seite beachten, ich habe versucht, auf diese Weise zu testen:
if String is Null, Float = 0
if String is not null, Float.valueOF(String)
Aber es scheint nicht immer die Zeichenfolge als null zu lesen. Ist es tatsächlich NICHT null
in diesem Fall?
'Vipul.isGenius (Shah)? +1: null' – capdragon
@capdragon Froh, Ihnen zu helfen :) –
Nach weiterer Auswertung, verschiebe ich diese Antwort auf die richtige. – KickingLettuce