Bagaimana saya bisa mendeteksi ketika nilai json adalah null? contoh: [{"username": null}, {"username": "null"}]
Kasus pertama mewakili nama pengguna yang tidak ada dan yang kedua adalah pengguna bernama "null". Tetapi jika Anda mencoba mengambil keduanya, kedua nilai akan menghasilkan string "null"
JSONObject json = new JSONObject("{\"hello\":null}");
json.put("bye", JSONObject.NULL);
Log.e("LOG", json.toString());
Log.e("LOG", "hello="+json.getString("hello") + " is null? "
+ (json.getString("hello") == null));
Log.e("LOG", "bye="+json.getString("bye") + " is null? "
+ (json.getString("bye") == null));
Output lognya adalah
{"hello":"null","bye":null}
hello=null is null? false
bye=null is null? false
has(java.lang.String);
metodeJawaban:
Coba dengan
json.isNull( "field-name" )
.Referensi: http://developer.android.com/reference/org/json/JSONObject.html#isNull%28java.lang.String%29
sumber
Karena JSONObject # getString mengembalikan nilai jika kunci yang diberikan ada, menurut definisi tidak null. Inilah alasan keberadaan JSONObject.NULL: untuk mewakili nilai JSON null.
sumber
Untuk android, ini akan memunculkan JSONException jika tidak ada pemetaan seperti itu. Jadi Anda tidak bisa memanggil metode ini secara langsung.
jika data anda bisa kosong (mungkin tidak ada kuncinya), coba
atau
sebagai gantinya.
Dalam kode demo Anda,
ini yang Anda dapatkan adalah String "null" bukan null.
penggunaan shoud Anda
sumber
pertama periksa dengan
isNull()
.... jika tidak bisa bekerja kemudian coba di bawah inidan juga Anda harus
JSONObject.NULL
memeriksa nilai null ...dan dalam kasus Anda juga periksa
resultObject.getString("username").trim().eqauls("null")
sumber
Jika Anda harus mengurai json terlebih dahulu dan menangani objek nanti, mari coba ini
Parser
Penangan
sumber
Berikut adalah metode pembantu yang saya gunakan sehingga saya bisa mendapatkan string JSON hanya dengan satu baris kode:
dan kemudian sesuatu seperti ini:
akan memberi Anda nilai string atau dengan aman menyetel variabel string Anda ke null. Saya menggunakan Gson kapan pun saya bisa untuk menghindari jebakan seperti ini. Ini menangani nilai nol jauh lebih baik menurut saya.
sumber