【问题标题】:Double and Boolean attribute problem in JSON modelJSON模型中的双重和布尔属性问题
【发布时间】:2019-04-12 13:15:12
【问题描述】:

在此先感谢所有能看到我的出版物的人。我有这个 JSON 作为响应,其中列表中的对象在其中一个属性中接收数据类型 Double 并且这同样在同一列表的另一个对象中接收布尔数据,我正在使用改造库,但给了我以下错误:

预期为双精度,但在第 1 行第 1831 列路径 $ .extension_attributes.carrousel [0] .related_products [0] .price_regular 处为 BOOLEAN

这告诉我问题出在“price_regular”属性中,这是我第一次遇到这种情况。

这是 JSON

"related_products": [
                {
                    "name": "AZALEIA 239-036",
                    "price_regular": false,
                    "price_special": null,
                    "price": 0,                    
                },
                {            
                    "name": "AZALEIA 239-038",
                    "price_regular": 69.9,
                    "price_special": null,
                    "price": 69.9,                        
                },
]

你可以看到它在price_regular属性中显示了它是如何接收一个double和一个false的,我的模型将通过以下方式生成它。

@SerializedName(Constants.Api.RelatedProducts.NAME)
private String name;
@SerializedName(Constants.Api.RelatedProducts.PRICE_REGULAR)
private Double priceRegular;
@SerializedName(Constants.Api.RelatedProducts.PRICE_SPECIAL)
private Double priceSpecial;
@SerializedName(Constants.Api.RelatedProducts.PRICE)
private Double price;

 public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public Double getPriceRegular() {
    return priceRegular;
}

public void setPriceRegular(Double priceRegular) {
    this.priceRegular = priceRegular;
}

public Double getPriceSpecial() {
    return priceSpecial;
}

public void setPriceSpecial(Double priceSpecial) {
    this.priceSpecial = priceSpecial;
}

public Double getPrice() {
    return price;
}

public void setPrice(Double price) {
    this.price = price;
}

【问题讨论】:

    标签: android json android-studio model-view-controller


    【解决方案1】:

    首先在你的模型类中输入你的 prim priceRegular 作为 Object

    @SerializedName(Constants.Api.RelatedProducts.PRICE_REGULAR)
    private Object priceRegular;
    

    当然,把你的吸气剂改成一个像这样的对象;

    public Object getPriceRegular() {
        return priceRegular;
    }
    

    现在我们完成了您的模型类。是时候解析你的数据了:)

    在您的 json 响应中,您需要像这样解析它

    if(response. getPriceRegular() instanceof Boolean) {
    //Do something
    } else if (response. getPriceRegular() instanceof Double) {
    //Do something
    } else {
    //Do something
    }
    

    我认为这将适用于您的故事。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多