Search code examples
androidretrofit2numberformatexception

Retrofit response return " NumberFormatexception : Empty string"


i know actually a lot of these kinds of questions, and i have searched on google but i can't find where the error is in my code.

I tried to send a request to fetch data, but it runs the onFailure method which reads "NumberFormatException: Empty string" and the data can't be displayed in the recyclerview, even though I'm also getting a json response as I wanted.

i got this response:

{
    "kode":1,
    "pesan":"Barang ditemukan",
    "data":[
        {
            "Sat_1":"PT",
            "Sat_2":"",
            "Isi_2":"",
            "KdBrg":"280349191",
            "NmBrg":"SILICONE PACIFIER STEP 1A",
            "Stock_Akhir":"0",
            "Hrg":28000
        }
    ]
}

my object model


public class ModelDataBarang {
    private int Isi_2;
    private int Isi_3;
    private int Isi_4;
    private String KdBrg;
    private String NmBrg;
    private String Sat_1;
    private String Sat_2;
    private String Sat_3;
    private String Sat_4;
    private String KdHrgList;
    private double Stock_Akhir;
    private double HrgJl11;

    public double getHrgJl11() {
        return HrgJl11;
    }

    public void setHrgJl11(double hrgJl11) {
        HrgJl11 = hrgJl11;
    }

    private String Hrg;

    public String getHrg() {
        return Hrg;
    }

    public void setHrg(String hrg) {
        Hrg = hrg;
    }

    public String getKdHrgList() {
        return KdHrgList;
    }

    public void setKdHrgList(String kdHrgList) {
        KdHrgList = kdHrgList;
    }

    public String getSat_3() {
        return this.Sat_3;
    }

    public void setSat_3(String sat_3) {
        this.Sat_3 = sat_3;
    }

    public String getSat_4() {
        return this.Sat_4;
    }

    public void setSat_4(String sat_4) {
        this.Sat_4 = sat_4;
    }

    public int getIsi_3() {
        return this.Isi_3;
    }

    public void setIsi_3(int isi_3) {
        this.Isi_3 = isi_3;
    }

    public int getIsi_4() {
        return this.Isi_4;
    }

    public void setIsi_4(int isi_4) {
        this.Isi_4 = isi_4;
    }

    public String getKdBrg() {
        return this.KdBrg;
    }

    public void setKdBrg(String kdBrg) {
        this.KdBrg = kdBrg;
    }

    public String getNmBrg() {
        return this.NmBrg;
    }

    public void setNmBrg(String nmBrg) {
        this.NmBrg = nmBrg;
    }

    public String getSat_1() {
        return this.Sat_1;
    }

    public void setSat_1(String sat_1) {
        this.Sat_1 = sat_1;
    }

    public String getSat_2() {
        return this.Sat_2;
    }

    public void setSat_2(String sat_2) {
        this.Sat_2 = sat_2;
    }

    public int getIsi_2() {
        return this.Isi_2;
    }

    public void setIsi_2(int isi_2) {
        this.Isi_2 = isi_2;
    }

    public double getStock_Akhir() {
        return this.Stock_Akhir;
    }

    public void setStock_Akhir(double stock_Akhir) {
        this.Stock_Akhir = stock_Akhir;
    }

    public String toString() {
        return this.NmBrg;
    }
}

my recyclerview data holder

        ModelDataBarang modelBarangResto= listModel.get(position);

        holder.tvKdBrg.setText(modelBarangResto.getKdBrg());
        holder.tvNmBarang.setText(modelBarangResto.getNmBrg());
        holder.tvHrgBrg.setText(String.valueOf(modelBarangResto.getHrg()));

all answers i will appreciate


Solution

  • Your model class values are not defined as per your response. Try to check and modify respective return type. You are getting this error because you have defined Isi_2 as int in your model class but in response you are getting empty string.

    Replace this

     private int Isi_2;
    

    With this

     private String Isi_2;