【问题标题】:how to handle a JSON array object using retrofit?如何使用改造处理 JSON 数组对象?
【发布时间】:2016-11-02 16:24:47
【问题描述】:

我对 Android 不是很陌生,但今天开始使用改造,我能够清除所有错误,现在响应正文返回 null。我知道这与我的班级设置方式有关。我不知道如何处理带有数组的数组。任何帮助,将不胜感激。谢谢

[

我的界面

  @GET("/web-api.php?route=feed/web_api/products")
 Call<Product>  loadProducts(@Query("category") Integer id, @Query("key")         String apiKey);

public class Product implements Serializable {
@SerializedName("id")
private long mId;
@SerializedName("name")
private String mname;
@SerializedName("description")
private String mText;
@SerializedName("price")
private Double mprice;
@SerializedName("href")
private String mproductURL;
@SerializedName("thumb")
private String mImageURL;

public Product(long mId, String mname, String mText, Double mprice, String mproductURL, String mImageURL) {
    this.mId = mId;
    this.mname = mname;
    this.mText = mText;
    this.mprice = mprice;
    this.mproductURL = mproductURL;
    this.mImageURL = mImageURL;
}

public long getmId() {
    return mId;
}

public void setmId(long mId) {
    this.mId = mId;
}

public String getMname() {
    return mname;
}

public void setMname(String mname) {
    this.mname = mname;
}

public String getmText() {
    return mText;
}

public void setmText(String mText) {
    this.mText = mText;
}

public Double getMprice() {
    return mprice;
}

public void setMprice(Double mprice) {
    this.mprice = mprice;
}

public String getMproductURL() {
    return mproductURL;
}

public void setMproductURL(String mproductURL) {
    this.mproductURL = mproductURL;
}

public String getmImageURL() {
    return mImageURL;
}

public void setmImageURL(String mImageURL) {
    this.mImageURL = mImageURL;
}


@Override
public String toString() {
    return mText;
}

}

【问题讨论】:

  • 您的改造类与响应不匹配。您需要一个具有布尔值和产品数组列表的对象

标签: android json api retrofit


【解决方案1】:

只需定义一个 Super 类 -

public class ResponseDS{
    public boolean success;
    public Product[] products;
}

并使用 ResponseDS 代替 Product 类 -

 @GET("/web-api.php?route=feed/web_api/products")
 Call<ResponseDS>  loadProducts(@Query("category") Integer id, @Query("key")         String apiKey);

希望它会有所帮助:)

【讨论】:

    猜你喜欢
    • 2017-05-12
    • 2019-06-03
    • 2020-01-29
    • 2017-09-02
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    相关资源
    最近更新 更多