gpt4 book ai didi

android - 改造具有不同对象的数组

转载 作者:行者123 更新时间:2023-11-30 01:48:24 25 4
gpt4 key购买 nike

我想发出 GET 请求并获取具有不同参数名称的对象:

{
"monday": {
"open_time": "06:30",
"close_time": "20:30"
},
"tuesday": {
"open_time": "06:30",
"close_time": "20:30"
},
"wednesday": {
"open_time": "06:30",
"close_time": "20:30"
},
"thursday": {
"open_time": "06:30",
"close_time": "20:30"
},
"friday": {
"open_time": "06:30",
"close_time": "20:30"
},
"saturday": {
"open_time": "08:00",
"close_time": "19:00"
},
"sunday": {
"open_time": "08:00",
"close_time": "19:00"
}
}

所以我创建了 DayEntity 但不知道如何使用我的星期一、星期二等?服务 jsonschema2pojo 想在周一到周日创建很多类。

public class DayEntity {

@SerializedName("open_time")
@Expose
private String openTime;

@SerializedName("close_time")
@Expose
private String closeTime;

public void setOpenTime(String openTime) {
this.openTime = openTime;
}

public void setCloseTime(String closeTime) {
this.closeTime = closeTime;
}

UDP: 如果 GSON 可以很好地解析它,如何将它与 Retrofit 组合使用?我有 WeekEntity,它在成功时返回 NullPointer()

public class WeekEntity {

public HashMap<String, DayEntity> week;

public HashMap<String, DayEntity> getWeek() {
return week;
}
}



public void getBusinessHours(final Context context) {
RestAdapter restAdapter = formatHeader(NetworkConstants.BUSINESS_HOURS_URL);
restAdapter.create(ApiService.class).getBusinessHours(new Callback<WeekEntity>() {
@Override
public void success(WeekEntity weekEntity, Response response) {
Log.v("~~~~~success", weekEntity.getWeek().toString());
}

@Override
public void failure(RetrofitError error){
}
});
}

最佳答案

最好是使用 Gson Plugin for android studio 将 JSON 字符串转换为 InnerClassEntity。

1) 从here下载插件并将其安装在 File/setting/plugin

的 android studio 中

2) 安装后,创建类,然后右键单击/生成/GsonFormat 并粘贴您的响应,然后单击确定。将自动生成您的响应对象(Json 字符串)。保存并完成。

3) 你可以像这样在 onResponse 中迭代数组

public void onResponse(Response<ModelClass> response, Retrofit retrofit) {

for (int i=0;i<response.body().getResponse().getArray_name().size();i++)
{
Log.i("TAG", "retro array :" + response.body().getResponse().getArray_name().get(i).getItem());
}

}

并且当您像这样初始化改造时分配 ConverterFactory

retrofit = new Retrofit.Builder()
.baseUrl(API_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();

并且在build.gradle

compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'

关于android - 改造具有不同对象的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33395664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com