Tôi nhận LogCat này:kiểm tra cho đối tượng JSON null trong 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)
Đây là mã:
try
{
jObject = new JSONObject(result);
starAvg = jObject.getString("AverageRating");
}
ratingsBar = (RatingBar) findViewById(R.id.theRatingBar);
ratingsBar.setRating(Float.valueOf(starAvg));
Đây là bối cảnh:
Trong PHP, tôi trung bình tổng số trong một cột trong bảng MySQL. Khi có bất kỳ hàng nào, nó sẽ gửi lại trung bình dữ liệu trong đó và nó mã hóa nó, và Java chọn nó như một đối tượng JSON. Nhưng đôi khi, có những trường hợp một bảng có thể có 0 hàng, vì vậy tôi có được JSON Object này:
{"AverageRating":null}
Ứng dụng của tôi sau đó bị treo và LogCat
là như đã thấy ở trên.
String
dường như không quan tâm nếu nó chọn một đối tượng JSON Null nhưng ứng dụng gặp sự cố khi tôi làm Float.valueOf(theString)
.
Một mặt lưu ý, tôi đã cố gắng để kiểm tra theo cách này:
if String is Null, Float = 0
if String is not null, Float.valueOF(String)
Nhưng nó không bao giờ dường như đọc String như null. Có thực sự là không null
trong trường hợp này?
'Vipul.isGenius (Shah)? +1: null' – capdragon
@capdragon Rất vui được giúp bạn :) –
Khi đánh giá thêm, tôi sẽ chuyển câu trả lời này sang câu trả lời đúng. – KickingLettuce