我是Android新手。我需要从JSON列表中获取字符串列表。它将添加到Spinner
列表中。我在服务器上有列表
[{"bgroup":"A+"},{"bgroup":"A1+"},{"bgroup":"A1-"}].
尝试使用Retrofit Scalars。 回复为
[{"bgroup":"A+"},{"bgroup":"A1+"},{"bgroup":"A1-"}]
但错误检测为:
预期一个字符串,但在第1行第3列路径为BEGIN_OBJECT $ [0] *
从JSON中检索字符串列表的更好方法是什么?
答案 0 :(得分:0)
这是示例代码:
GroupService groupService = createService(GroupService.class);
Call<List<Groups>> groupCall = groupService.getGroups();
groupCall.enqueue(new Callback<List<Groups>>() {
@Override
public void onResponse(retrofit.Response<List<Groups>> response, Retrofit retrofit) {
}
@Override
public void onFailure(Throwable t) {
t.printStackTrace();
}
});
接口:
public interface GroupService {
@GET("<URL>")
Call<List<Groups>> getGroups();
}
同时创建模型名称Groups。
我希望这会对你有所帮助。
答案 1 :(得分:0)
制作以下模型类(parcelable)
package com.example;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Example implements Parcelable {
@SerializedName("bgroup")
@Expose
private String bgroup;
public String getBgroup() {
return bgroup;
}
public void setBgroup(String bgroup) {
this.bgroup = bgroup;
}
protected Example(Parcel in) {
bgroup = in.readString();
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(bgroup);
}
@SuppressWarnings("unused")
public static final Parcelable.Creator<Example> CREATOR = new Parcelable.Creator<Example>() {
@Override
public Example createFromParcel(Parcel in) {
return new Example(in);
}
@Override
public Example[] newArray(int size) {
return new Example[size];
}
};
}
比这样创建接口类
public interface ApiService {
@GET("<URL>")
Call<List<Example>> getBloodGroups();
}
最后打电话改造如下:
Call<List<Example>> call = new RestClient(this).getApiService()
.getBloodGroups();
call.enqueue(new Callback<List<Example>>() {
@Override
public void onResponse(Call<List<Example>> call, Response<List<Example>> response) {
}
@Override
public void onFailure(Call<List<Example>> call, Throwable throwable) {
}
});