Я знаю, как получать массивы, когда они относятся к этому типу:
[
{
"username": "luis",
"job": "developer",
"age": 23
}
]
Моя проблема заключается в том, что я должен получить массив с определенным именем, например так:
{"result":[{"userid":"1","username":"Luis","job":"developer","age":"23"}]}
inВ этом случае я должен получить массив выше с именем «result» с помощью retrofit2.Может кто-нибудь, пожалуйста, помогите мне, я новичок в модернизации.
Это то, что я пытался:
MainActivity
apiInterface = ApiClient.getApiClient().create(ApiInterface.class);
Call<List<Workers>> call = apiInterface.getWorkers();
call.enqueue(new Callback<List<Workers>>() {
@Override
public void onResponse(Call<List<Workers>> call, Response<List<Workers>> response) {
list=response.body();
adapter = new WorkerAdapter(getApplicationContext(),list);
recyclerView.setAdapter(adapter);
}
@Override
public void onFailure(Call<List<Workers>> call, Throwable t) {
}
});
ApiClient:
public class ApiClient {
public static final String BASE_URL="http://192.168.31.206/test1_database/";
public static Retrofit retrofit = null;
public static Retrofit getApiClient(){
if (retrofit==null){
retrofit=new Retrofit.Builder().baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create()).build();
}
return retrofit;
}
}
ApiInterface:
public interface ApiInterface {
@GET("getAllUser.php")
Call<List<Workers>> getWorkers();
}
мой класс POJO или Workers:
public class Workers {
@SerializedName("username")
String Name;
@SerializedName("job")
String Job;
@SerializedName("age")
int Age;
public String getName() {
return Name;
}
public String getJob() {
return Job;
}
public int getAge() {
return Age;
}
}
и, наконец, мой RecyclerAdpter:
public class WorkerAdapter extends RecyclerView.Adapter<WorkerAdapter.ViewHolder>{
Context context;
List<Workers> list;
public WorkerAdapter(Context context,List<Workers> list) {
this.context = context;
this.list = list;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(context).inflate(R.layout.item_recycler,parent,false);
ViewHolder holder = new ViewHolder(v);
return holder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.name.setText(list.get(position).getName());
holder.job.setText(list.get(position).getJob());
holder.age.setText(String.valueOf(list.get(position).getAge()));
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
TextView name, job, age;
public ViewHolder(View itemView) {
super(itemView);
name= (TextView) itemView.findViewById(R.id.nametxt);
job=(TextView) itemView.findViewById(R.id.jobtxt);
age=(TextView) itemView.findViewById(R.id.agetxt);
}
}
}
Я застрял в течение двух днейсейчас, и я до сих пор не могу решить это.Пожалуйста помоги!