I am getting this LogCat:
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)
Here is code:
try
{
jObject = new JSONObject(result);
starAvg = jObject.getString("AverageRating");
}
ratingsBar = (RatingBar) findViewById(R.id.theRatingBar);
ratingsBar.setRating(Float.valueOf(starAvg));
Here is the context:
In PHP, I am averaging total numbers in a column in a MySQL table. When there are ANY rows, it will send back an average of the data in it and it encodes it, and Java picks it up as a JSON object. But sometimes, there are cases where a table may have 0 rows, so I get this JSON Object:
{"AverageRating":null}
My app then crashes and the LogCat is as seen above.
The String doesn’t seem to care if it picks up a Null JSON Object but the app crashes when I do Float.valueOf(theString).
Another side note, I have tried to test this way:
if String is Null, Float = 0
if String is not null, Float.valueOF(String)
But it doesn’t ever seem to read the String as null. Is it actually NOT null in this case?
Use the following method of
JsonObjectto check if a value against any key is nullThis method is used to check Null against any key or if there is no value for the key.
Use below snippet