Como posso detectar quando um valor json é nulo? por exemplo: [{"username": null}, {"username": "null"}]
O primeiro caso representa um nome de usuário inexistente e o segundo um usuário denominado "null". Mas se você tentar recuperar os dois valores resultarão na 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));
A saída do log é
{"hello":"null","bye":null}
hello=null is null? false
bye=null is null? false
has(java.lang.String);
método