sto ottenendo questo LogCat:test per gli oggetti JSON nulli 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)
Ecco il codice:
try
{
jObject = new JSONObject(result);
starAvg = jObject.getString("AverageRating");
}
ratingsBar = (RatingBar) findViewById(R.id.theRatingBar);
ratingsBar.setRating(Float.valueOf(starAvg));
Ecco il contesto:
In PHP, io sono calcolo della media dei numeri totali in una colonna in una tabella MySQL. Quando ci sono QUALSIASI riga, restituisce una media dei dati al suo interno e la codifica e Java la preleva come oggetto JSON. Ma a volte, ci sono casi in cui una tabella può avere 0 filari, in modo da ottenere questo JSON oggetto:
{"AverageRating":null}
mia app si blocca allora e la LogCat
è come visto sopra.
Il String
non sembra importare se recupera un oggetto Null JSON ma l'app si arresta in modo anomalo quando eseguo Float.valueOf(theString)
.
Un'altra nota a margine, ho cercato di testare in questo modo:
if String is Null, Float = 0
if String is not null, Float.valueOF(String)
Ma non fa mai sembra di leggere la stringa come nullo. In realtà non è in questo caso lo null
?
'Vipul.isGenius (Shah)? +1: null' – capdragon
@capdragon Contento di aiutarti :) –
Dopo un'ulteriore valutazione, sto spostando questa risposta a quella corretta. – KickingLettuce