改造解析JSON响应空值Android
Posted
技术标签:
【中文标题】改造解析JSON响应空值Android【英文标题】:Retrofit parsing JSON response null values 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循环中的元素数量是正确的,我已经测试过,值都是空的。我错过了什么,任何帮助将不胜感激。谢谢
【问题讨论】:
【参考方案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 让我们continue this discussion in chat.【参考方案2】:是的,我同意。我也错过了@Expose 注释。当使用第三方工具从json
转换为kotlin
或java
类时,可能会特别发生这种情况。在进行单元测试时,我还使用 Gson 从 json
转换,一切都顺利通过,直到我运行应用程序并且一切都返回空值
【讨论】:
以上是关于改造解析JSON响应空值Android的主要内容,如果未能解决你的问题,请参考以下文章