获取JSON数组数据

问题描述 投票:0回答:1

我有一个JSON数组。像这样。

[
  {
    "id": 3110,
    "title": {
      "rendered": "Dr Abul Khair"
    },
    "medilink_degree": "Associate Professor
  }
] 

通过使用 retrofit,我可以得到 idmedilink_degree 在我的安卓应用程序中。但是 title 因为它的格式是这样的,所以不能被检索。

"title":{"rendered":"Dr Abul Khair"}

我是用 @SerializedName("id")

可是,怎么才能拿到题目呢?我用的是 @SerializedName("title.rendered"). 它不工作。

android json retrofit
1个回答
0
投票

请使用下面的模型类从API获取数据。

public class Title {

@SerializedName("rendered")
@Expose
private String rendered;

public String getRendered() {
return rendered;
}

public void setRendered(String rendered) {
   this.rendered = rendered;
}

}

public class User {

@SerializedName("id")
@Expose
private Integer id;
@SerializedName("title")
@Expose
private Title title;
@SerializedName("medilink_degree")
@Expose
private String medilinkDegree;

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public Title getTitle() {
return title;
}

public void setTitle(Title title) {
this.title = title;
}

public String getMedilinkDegree() {
return medilinkDegree;
}

public void setMedilinkDegree(String medilinkDegree) {
this.medilinkDegree = medilinkDegree;
}

}

你可以看到下面的链接如何使用retrofit来获取数据的模型类。

https:/medium.com@prakash_punretrofit-a-simple-android-tutorial-48437e4e5a23。


0
投票

你必须创建一个单独的名为Title的类,并在其中定义渲染变量。下面是参考代码。

    public class DoctorProfile {

        @SerializedName("id")
        private int id;
        @SerializedName("title")
        private Title title;
        @SerializedName("medilink_degree")        
        private String medilinkDegree;

     //getter-setter methods   

       public static class Title {
           @SerializeName("rendered")
           private String rendered;
           //getter-setter method
        }
    }

0
投票
package com.example.product;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class CategoryResponse {

@SerializedName("id")
@Expose
private Integer id;
@SerializedName("title")
@Expose
private Title title;
@SerializedName("medilink_degree")
@Expose
private String medilinkDegree;

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public Title getTitle() {
return title;
}

public void setTitle(Title title) {
this.title = title;
}

public String getMedilinkDegree() {
return medilinkDegree;
}

public void setMedilinkDegree(String medilinkDegree) {
this.medilinkDegree = medilinkDegree;
}

}

你可以得到一个像下面的标题。

CategoryResponse categoryResponse= assign your reponse;
String title = categoryResponse.getTitle().getRendered();
Log.e("Title: ", ""+ title);

你可以创建你的响应pojo从 此处

© www.soinside.com 2019 - 2024. All rights reserved.