首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用内部对象数组解析JSON数组

用内部对象数组解析JSON数组
EN

Stack Overflow用户
提问于 2020-03-21 08:47:45
回答 1查看 60关注 0票数 2

我有一个来自端点的json响应片段,我需要在其中获取一些消息,但返回给我的信息可能是错误的,或者我做错了:

代码语言:javascript
复制
{
    "data": [
        {
            "alignImages": "left",
            "data": [
                {
                    "content": "Despus de dos aos de la operacin y una intensiva terapia, jvenes que no podan mover sus miembros inferiores y superiores ahora pueden comer, cepi",
                    "id": 179,
                    "title": "Ciruga que reconecta los nervios le devolvi a 13 tetrapljicos la movilidad en",
                    "url_detail": "https://www.elespectador.com/noticias/salud/cirugia-que-reconecta-los-nervios-le-devolvio-13-tetraplejicos-la-movilidad-en-brazos-y-codos-articulo-869",
                    "url_image": "https://storage.googleapis.com/sitidoctor-161813.appspot.com/images/noticia_2.png"
                },
                {
                    ...
                }
            ],
            "imgHeader": "https://storage.googleapis.com/sitidoctor-161813.appspot.com/images/Noticias_Salud.png",
            "titleHeader": "Noticias Salud"
        }
    ],
    "message": "success!",
    "status": 200
}

这是我用来解析来自改装实例查询的响应的模型:

代码语言:javascript
复制
public class NewsResponse {

    @SerializedName("data")
    @Expose
    private List<New> data = null;
    @SerializedName("message")
    @Expose
    private String message;
    @SerializedName("status")
    @Expose
    private Integer status;

    public List<New> getData() {
        return data;
    }

    public void setData(List<New> data) {
        this.data = data;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

}

然后我像这样使用retrofit发出请求:

代码语言:javascript
复制
private void handleResponse(NewsResponse newsResponse) {
        Log.e("response", newsResponse.getData().toString());
        if (newsResponse.getData().size() > 0){
            List<New> n = new ArrayList<>();
            for (int i = 0; i < newsResponse.getData().size(); i++){
                New nn = newsResponse.getData().get(i);
                n.add(nn);
            }
            callback.onSuccess(n);
        }
}

但我总是得到一个单一的空值,就像是返回内部数据数组作为对象,但无法获得数据,我尝试了所有方法,但一无所获,有什么想法吗?

Reference imagen in debugger

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-25 06:33:15

查看您的调试器映像,您的newsResponse.getData().size()是1。列表中唯一的元素id、title、content、uridetail为空。您正在正确地处理响应。您的回答有问题。请检查您的网络呼叫是否正确

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60783414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档