EditText:如何删除从Json获取的“null”字符串

问题描述 投票:0回答:2

有什么办法可以消除JSONObject响应带来的编辑文本的“null”字符串吗?并只显示空的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
}
android json android-edittext
2个回答
1
投票

使用方法isNull()检查空值。

即:

if (jsonResponse.isNull("NOMBRE")) {
  edtName.setText("")
} else {
  edtName.setText(jsonResponse.getString("NOMBRE"))
}

或者如果你回来的话,简单地说:

jsonResponse.isNull("CELULAR") ? (return someting) : (return another thing)

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

    }
}
© www.soinside.com 2019 - 2024. All rights reserved.