【发布时间】:2016-03-28 10:24:12
【问题描述】:
这是我的 Json。它的问题是它有一个数组作为节点。我对 Retrofit 不太熟悉,因此在尝试了解发生了什么以及如何解决它时遇到了一些问题。
[
{
"first_name":"Jakub",
"nickname":"",
"last_name":"Machalek",
"description":"description1",
"speaker_id":0,
"image_path":""
},
{
"first_name":"Krzysztof",
"nickname":"",
"last_name":"Opasik",
"description":"Description2",
"speaker_id":1,
"image_path":""
},
...etc...
我应该如何解析它?我目前的尝试是这样的
POJO
public class Speaker implements ParentListItem{
private String mFirstName;
private String mNickname;
private String mLastName;
private String mDescription;
private String mImageUrl;
private ArrayList<Speaker> mChildrenList;
public Speaker(String mFirstName, String mNickname, String mLastName, String mDescription, String mImageUrl) {
this.mFirstName = mFirstName;
this.mNickname = mNickname;
this.mLastName = mLastName;
this.mDescription = mDescription;
this.mImageUrl = mImageUrl;
mChildrenList = new ArrayList<>();
mChildrenList.add(this);
}
public String getFirstName() {
return mFirstName;
}
public void setFirstName(String mFirstName) {
this.mFirstName = mFirstName;
}
public String getNickname() {
return mNickname;
}
public void setNickname(String mNickname) {
this.mNickname = mNickname;
}
public String getLastName() {
return mLastName;
}
public void setLastName(String mLastName) {
this.mLastName = mLastName;
}
public String getDescription() {
return mDescription;
}
public void setDescription(String mDescription) {
this.mDescription = mDescription;
}
public String getImageUrl() {
return mImageUrl;
}
public void setImageUrl(String mImageUrl) {
this.mImageUrl = mImageUrl;
}
@Override
public List<?> getChildItemList() {
return mChildrenList;
}
@Override
public boolean isInitiallyExpanded() {
return false;
}
和
public class SpeakerList {
List<Speaker> speakerList;
public List<Speaker> getSpeakerList() {
return speakerList;
}
public void add(Speaker nataCenterItem){
if(speakerList == null){
speakerList = new LinkedList<>();
}
speakerList.add(nataCenterItem);
}
改造 公共类 SessionInfoService { 私有 SessionInfoApi sessionInfoApi;
public SessionInfoService(){
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("...")
.addConverterFactory(GsonConverterFactory.create())
.build();
sessionInfoApi = retrofit.create(SessionInfoApi.class);
}
public void getLectureList(Callback callback) throws IOException {
sessionInfoApi.getLectureList().enqueue(callback);
}
public void getSpeakerList(Callback callback) throws IOException {
sessionInfoApi.getSpeakerList().enqueue(callback);
}
界面
@GET("...")
Call<List<Speaker>> getSpeakerList();
我可以使用任何帮助。
【问题讨论】:
-
我已经接受了下面的答案。抱歉耽搁了。我是一个偶尔的用户。现在我开始在工作中更频繁地使用 SO。
标签: android json gson retrofit