【问题标题】:Retrofit parsing JSON response null values Android改造解析JSON响应空值Android
【发布时间】:2015-08-18 07:31:55
【问题描述】:

您好,我无法弄清楚为什么我的回复得到空值。我在 Android 上使用 Retrofit 库。

原始 json

{
"images": [
{
  "image": {
    "name": "nike adver",
    "url": "http:\/\/wallpaperbarcelona.com\/wp-content\/uploads\/2013\/07\/neymar-nike-advert.jpg",
    "type": "photo"
  }
}]
}

// 接口

public interface PromoImagesAPI {
@GET("/FriendsCMS/images/?type=photo&format=json")
void promoImages(Callback<ImagesObject> callback);

}

请求函数

private void requestNewsData(String uri) {
RestAdapter api = new RestAdapter.Builder().setEndpoint(ENDPOINT).build();
PromoImagesAPI restapi = api.create(PromoImagesAPI.class);

restapi.promoImages(new Callback<Images>() {

@Override
public void success(Images imageObjects, Response response) {
     System.out.println("webservice " +response.getUrl());

     for (int i = 0; i < imageObjects.images.size(); i++) {
         System.out.println("webservice " +imageObjects.getImages().get(i).getUrl());
         }
      }

 @Override
 public void failure(RetrofitError error) {
     System.out.println("webservice " + error);
        }
    });

} 波乔

public class ImagesObject {
public List<Images> images;

public class Images {

    public String name;
    public String url;
    public String type;


    public String getName() {
        return name;
    }

    public String getUrl() {
        return url;
    }

    public String getType() {
        return type;
    }

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

    public void setUrl(String url) {
        this.url = url;
    }

    public void setType(String type) {
        this.type = type;
    }
}

}

问题是for循环中的元素数量是正确的,我已经测试过,值都是空的。我错过了什么,任何帮助将不胜感激。谢谢

【问题讨论】:

    标签: java android json retrofit pojo


    【解决方案1】:

    使用http://www.jsonschema2pojo.org/创建你的java对象模型并执行以下调用

    public interface PromoImagesAPI {
    @GET("/FriendsCMS/images/?type=photo&format=json")
    void promoImages(Callback<Images> callback);
    

    【讨论】:

    • 感谢您的回答,但我仍然返回空值。
    • 很抱歉还是 null :- (
    • 您好,我已经使用了您上传的 pojo 和相同的 api 调用来更新 rquest 函数
    • 尝试将ImagesObject改为Image
    【解决方案2】:

    是的,我同意。我也错过了@Expose 注释。当使用第三方工具从json 转换为kotlinjava 类时,可能会特别发生这种情况。在进行单元测试时,我还使用 Gson 从 json 转换,一切都顺利通过,直到我运行应用程序并且一切都返回空值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 2021-01-22
      相关资源
      最近更新 更多