我得到這個logcat的:測試在Java/Android的空JSON對象
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)
這裏是代碼:
try
{
jObject = new JSONObject(result);
starAvg = jObject.getString("AverageRating");
}
ratingsBar = (RatingBar) findViewById(R.id.theRatingBar);
ratingsBar.setRating(Float.valueOf(starAvg));
這裏是上下文:
在PHP中,我對MySQL表中列中的總數進行平均。當有任何行時,它將發送一個平均數據並對其進行編碼,Java將其作爲JSON對象進行拾取。但有時,存在其中表可能有0行的情況下,所以我得到這個JSON對象:
{"AverageRating":null}
我的應用程序,然後崩潰和LogCat
如上所示。
String
似乎並不關心它是否拾取了一個空JSON對象,但是當我執行Float.valueOf(theString)
時該應用程序崩潰。
另一個方面說明,我已經試圖測試是這樣的:
if String is Null, Float = 0
if String is not null, Float.valueOF(String)
不過,這並不永遠似乎讀取的字符串爲空。在這種情況下它實際上不是null
?如果收到null
'Vipul.isGenius(Shah)? +1:null' – capdragon
@capdragon很高興能幫到你:) –
經過進一步評估,我將這個答案轉移到了正確的答案上。 – KickingLettuce