gpt4 book ai didi

java - 如何从对象列表中提取元素并将其存储在字符串数组中

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

我正在尝试从服务器获取响应并将其显示在微调器中。我的服务器返回包含 JSON 数组的响应。 JSON 数组有两个字段 questionq_id 我想将这两个数据存储在不同的字符串数组中,并希望使用 question 的详细信息填充微调器> 并通过使用从微调器中选择的问题的索引,我想从 q_id 数组中获取元素并发送到服务器

谢谢。

服务器响应

 {
"data": [
{
"q_id": "21",
"question": "Flipkart VS Amazone which is better?"
},
{
"q_id": "22",
"question": "Test"
},

],
"status": true,
"message": "Bank Ac created sucessfully"}

此响应的模型

 public class Question {

@SerializedName("data")
@Expose
private List<Datum> data = null;
@SerializedName("status")
@Expose
private Boolean status;
@SerializedName("message")
@Expose
private String message;

public List<Datum> getData() {
return data;
}

public void setData(List<Datum> data) {
this.data = data;
}

public Boolean getStatus() {
return status;
}

public void setStatus(Boolean status) {
this.status = status;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}

基准类

    public class Datum {

@SerializedName("q_id")
@Expose
private String qId;
@SerializedName("question")
@Expose
private String question;

public String getQId() {
return qId;
}

public void setQId(String qId) {
this.qId = qId;
}

public String getQuestion() {
return question;
}

public void setQuestion(String question) {
this.question = question;
}

}

调用服务器

private void getQuestions() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().readTimeout(30, TimeUnit.SECONDS).writeTimeout(30, TimeUnit.SECONDS).addInterceptor(interceptor).build();
if (retrofit == null) {
retrofit = new Retrofit.Builder()
.baseUrl(CommonObjects.BASE_URL)
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
getquestion Service = retrofit.create(getquestion.class);

Call<Question> call = Service.post(id);

call.enqueue(new Callback<Question>() {
@Override
public void onResponse(Call<Question> call, Response<Question> response) {
if (!response.body().getStatus()) {
message = response.body().getMessage();
showMessage(message);
} else {
Question jsonResponse = response.body();
message = response.body().getMessage();
CommonObjects.q.setData(jsonResponse.getData());
CommonObjects.q.setMessage(message);
CommonObjects.q.setStatus(response.body().getStatus());
}
}


@Override
public void onFailure(Call<Question> call, Throwable t) {
// handle execution failures like no internet connectivity
BusProvider.getInstance().post(new ErrorEvent(-2, t.getMessage()));
}
});

}

界面

    public interface getquestion {
@FormUrlEncoded
@POST("feedback_question")
Call<Question> post(
@Field("userid") String question
);
}

最佳答案

用于每个循环并在数组列表中填充数据。做这样的事情。

else {
ArrayList<String> QidList = new ArrayList<String>();
ArrayList<String> QuestionList = new ArrayList<String>();
Question jsonResponse = response.body();
message = response.body().getMessage();
CommonObjects.q.setData(jsonResponse.getData());
CommonObjects.q.setMessage(message);
CommonObjects.q.setStatus(response.body().getStatus());
for (Datum data : jsonResponse.getData()) {
if((!TextUtils.isEmpty(data.getQId())) &&
(!TextUtils.isEmpty(data.getQuestion()))){
QidList.add(data.getQId());
QuestionList.add(data.getQuestion());
}

}
}

关于java - 如何从对象列表中提取元素并将其存储在字符串数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53568754/

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