有什么方法可以消除JSONObject响应带来的编辑文本的“空”字符串?并显示空的EditText。
他通过以下方式做到了。
if (jsonResponse.getString(DataManager.Name).equals("null"){
edtName.setText("");
}else{
edtName.setText(jsonResponse.getString(usersDataInfo.getNombre()));
}
但是当该字段包含信息时,它将再次输入指令并删除信息。
JSON
{
"ID": 23,
"NOMBRE": null,
"APELLIDOPATERNO": null,
"APELLIDOMATERNO": null,
"TELEFONO": null,
"CELULAR": null,
"NACIMIENTO": null,
"SEXO": null,
"USUARIOID": 7
}
答案 0 :(得分:1)
使用isNull()方法检查空值。
即:
if (jsonResponse.isNull("NOMBRE")) {
edtName.setText("")
} else {
edtName.setText(jsonResponse.getString("NOMBRE"))
}
或者,如果您返回东西,只需:
jsonResponse.isNull("CELULAR") ? (return someting) : (return another thing)
答案 1 :(得分:1)
我已经创建了一个样本,对我来说,它正在工作,看看:
public class MainActivity extends AppCompatActivity {
private EditText etEjemplo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etEjemplo = findViewById(R.id.etEjemplo);
String json = "{\n" +
"\t\"ID\": 23,\n" +
"\t\"NOMBRE\": null,\n" +
"\t\"APELLIDOPATERNO\": null,\n" +
"\t\"APELLIDOMATERNO\": null,\n" +
"\t\"TELEFONO\": null,\n" +
"\t\"CELULAR\": null,\n" +
"\t\"NACIMIENTO\": null,\n" +
"\t\"SEXO\": null,\n" +
"\t\"USUARIOID\": 7\n" +
"}";
try {
JSONObject jObj = new JSONObject(json);
String nombre = jObj.getString("NOMBRE");
//You can use jObj.isNull("NOMBRE") instead
if(nombre.equals("null")){
etEjemplo.setText("");
}
else{
etEjemplo.setText(nombre);
}
//One line case
//etEjemplo.setText(nombre.equals("null") ? "" : nombre);
//or
//etEjemplo.setText(jObj.isNull("NOMBRE") ? "" : nombre);
} catch (JSONException e) {
e.printStackTrace();
}
}
}