EditText:如何删除从Json获得的“空”字符串

时间:2019-03-06 18:00:39

标签: android json android-edittext

有什么方法可以消除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
}

2 个答案:

答案 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();
        }

    }
}