我得到了这个 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)
这是代码:
try
{
jObject = new JSONObject(result);
starAvg = jObject.getString("AverageRating");
}
ratingsBar = (RatingBar) findViewById(R.id.theRatingBar);
ratingsBar.setRating(Float.valueOf(starAvg));
这是上下文:
在 PHP 中,我在 MySQL 表的列中平均总数。当有 ANY 行时,它会发回其中数据的平均值并对其进行编码,Java 将其作为 JSON 对象拾取。但有时,在某些情况下,一个表可能有 0 行,所以我得到了这个 JSON 对象:
{"AverageRating":null}
然后我的应用程序崩溃,LogCat
如上所示。
String
似乎并不关心它是否接收到 Null JSON 对象,但是当我这样做时应用程序崩溃Float.valueOf(theString)
。
另一个旁注,我试图以这种方式进行测试:
if String is Null, Float = 0
if String is not null, Float.valueOF(String)
但它似乎从来没有将字符串读为空。null
在这种情况下实际上不是吗?