改造响应返回“NumberFormatException:空字符串”

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

我实际上知道很多此类问题,我已经在谷歌上搜索过,但我找不到我的代码中的错误所在。

我尝试发送请求来获取数据,但它运行 onFailure 方法,该方法读取 “NumberFormatException:空字符串” 并且数据无法显示在 recyclerview 中,尽管我也收到了 json 响应我想要。

我收到这样的回复:

{
    "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
        }
    ]
}

我的对象模型


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

我的recyclerview数据持有者

        ModelDataBarang modelBarangResto= listModel.get(position);

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

所有答案我都会感激

android retrofit2 numberformatexception
2个回答
3
投票

您的模型类别值未根据您的回复进行定义。尝试检查并修改相应的返回类型。您收到此错误是因为您已在模型类中将 Isi_2 定义为 int,但作为响应,您得到的是空字符串。

更换这个

 private int Isi_2;

有了这个

 private String Isi_2;

0
投票

确保始终检查您的数据类、定义的变量及其数据类型始终必须与 JSON 响应中的数据类型匹配。

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