我需要在Requestbody中添加多个课程详细信息。
我必须使用[]。
如果我想添加多门课程,我必须添加如下内容:
for (int i = 0; i < listStudentCourseData.size(); i++) {
requestBody.put("fees[]", listStudentCourseData.get(i).getStrFees());
requestBody.put("course_id[]", listStudentCourseData.get(i).getStrCourseId());
requestBody.put("duration[]", listStudentCourseData.get(i).getStrDuration());
requestBody.put("course_status[]", listStudentCourseData.get(i).getStrCourseStatus());
requestBody.put("certificate[]", listStudentCourseData.get(i).getStrCertificate());
requestBody.put("book_material[]", listStudentCourseData.get(i).getStrBookMaterial());
requestBody.put("bag[]", listStudentCourseData.get(i).getStrBag());
}
问题是我只能为课程列表添加单个值。您可以看到我已经使用for循环多次添加相同的参数(根据后端要求)
我调试了代码,发现for循环内的所有参数值都被last取代。 我只能添加一个课程详细信息。
可能是什么问题?
或
如何实现(添加多个值-数组)?
答案 0 :(得分:1)
。可能是什么问题? 问题是requestBody接受键值对,键对必须唯一。因此您的requestBody仅保存循环中的最后一个值。
解决方案
for(int i = 0; i requestBody.put(“ fees [” + i +“]”,listStudentCourseData.get(i).getStrFees()); } 我尚未测试过,但希望它能工作。开心的编码requestBody.put("course_id["+ i + "]",listStudentCourseData.get(i).getStrCourseId());
requestBody.put("duration["+ i + "]", listStudentCourseData.get(i).getStrDuration());
requestBody.put("course_status[" + i + ]",listStudentCourseData.get(i).getStrCourseStatus());
requestBody.put("certificate[" + i + "]", listStudentCourseData.get(i).getStrCertificate());
requestBody.put("book_material[" + i + "]",listStudentCourseData.get(i).getStrBookMaterial());
requestBody.put("bag[" + i + "]", listStudentCourseData.get(i).getStrBag());