无法理解如何解析这个json数组。
[{ “ID”: “154”, “导通时间”: “2016年3月15日”, “不工作时间”: “2016年4月14日”, “usluga_id”: “2”, “名称”:” 50mpbs”, “时期”: “30”, “成本”: “300”},
{ “ID”: “152”, “导通时间”: “2016年3月15日”, “不工作时间”: “2016年4月14日”, “usluga_id”: “4”, “名称”:“TV60 ”, “时期”: “30”, “成本”: “100”},
{ “ID”: “156”, “导通时间”: “2016年3月15日”, “不工作时间”: “2016年4月4日”, “usluga_id”: “5”, “名称”:“TV120 ”, “时期”: “20”, “成本”: “200”},
{ “ID”: “153”, “导通时间”: “2016年3月15日”, “不工作时间”: “2016年3月30日”, “usluga_id”: “6”, “名称”:“SMS -check”, “时期”: “15”, “成本”: “50”}]
@Generated( “org.jsonschema2pojo”)
public class UserService {
@SerializedName("id")
@Expose
private String id;
@SerializedName("ontime")
@Expose
private String ontime;
@SerializedName("offtime")
@Expose
private String offtime;
@SerializedName("usluga_id")
@Expose
private String uslugaId;
@SerializedName("name")
@Expose
private String name;
@SerializedName("period")
@Expose
private String period;
@SerializedName("cost")
@Expose
private String cost;
/**
*
* @return
* The id
*/
public String getId() {
return id;
}
/**
*
* @param id
* The id
*/
public void setId(String id) {
this.id = id;
}
/**
*
* @return
* The ontime
*/
public String getOntime() {
return ontime;
}
/**
*
* @param ontime
* The ontime
*/
public void setOntime(String ontime) {
this.ontime = ontime;
}
/**
*
* @return
* The offtime
*/
public String getOfftime() {
return offtime;
}
/**
*
* @param offtime
* The offtime
*/
public void setOfftime(String offtime) {
this.offtime = offtime;
}
/**
*
* @return
* The uslugaId
*/
public String getUslugaId() {
return uslugaId;
}
/**
*
* @param uslugaId
* The usluga_id
*/
public void setUslugaId(String uslugaId) {
this.uslugaId = uslugaId;
}
/**
*
* @return
* The name
*/
public String getName() {
return name;
}
/**
*
* @param name
* The name
*/
public void setName(String name) {
this.name = name;
}
/**
*
* @return
* The period
*/
public String getPeriod() {
return period;
}
/**
*
* @param period
* The period
*/
public void setPeriod(String period) {
this.period = period;
}
/**
*
* @return
* The cost
*/
public String getCost() {
return cost;
}
/**
*
* @param cost
* The cost
*/
public void setCost(String cost) {
this.cost = cost;
}
public class ServicesArray {
private List<UserService> services;
public ServicesArray(){};
public List<UserService> getServices() {
return services;
}
public void setServices(List<UserService> services) {
this.services = services;
}
活动......
public void GetUserServices(){
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://cybergenesis.ru/egor/")
.addConverterFactory(GsonConverterFactory.create())
.build();
APIService service = retrofit.create(APIService.class);
Call<ServicesArray> call = service.getUserServices("egoraa");
call.enqueue(new Callback<ServicesArray>() {
@Override
public void onResponse(Call<ServicesArray> call, retrofit2.Response<ServicesArray> response) {
String[] services = new String[response.body().getServices().size()];
response.body().getServices().toArray(services);
Log.d(TAG,"OKKKK");
}
@Override
public void onFailure(Call<ServicesArray> call, Throwable t) {
Log.d(TAG,"ERROR PROFIT");
}
});
}
日志:D /主屏幕:错误利润
响应为空,我的问题是什么?
答案 0 :(得分:0)
您发布的JSON是一个用户列表,因此您不应该将ServicesArray
类解析,而应该将其视为User
个对象的列表:
Type type = new TypeToken<Collection<User>>(){}.getType();
List<User> users = new Gson().fromJson(jsonString,type);
而不是:
List<User> users = new Gson().fromJson(jsonString,User.class);
答案 1 :(得分:0)
您有一系列用户。使用此作为服务回调的返回类型。数组在改造中映射到List。
public class UserList{
private List<User>users;
public UserList(){};
public List<User>getUsers() {
return users;
}
public void setUsers(List<User>users) {
this.users= users;
}
}
答案 2 :(得分:0)
如果所有响应都是json格式的
,您可以在所有响应中设置GSON Converter Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(builder.create()))
.build();