我有这个基本的测验应用程序,我正在尝试构建,现在我仍然坚持在春季处理提交的测验答案。
我使用js函数存储问题ID并在json对象中提交答案id,如下所示:
{
1: [2,3,4],
2: [1,2]
}
因此,用户发送了id为1的问题的答案2,3,4。现在,我正在尝试使用ajax将此json对象发送到spring控制器方法。
// DO POST
function ajaxSubmitAns(formdata){
$.ajax({
type : "POST",
url : "/process-answers",
data: JSON.stringify(formData),
contentType : 'application/json; charset=utf-8',
dataType: 'json',
headers: {
Accept: 'application/json'
},
success: function(){
//do something
},
error : function(e) {
//error
}
});
}
我还编写了控制器函数,但我不知道如何从json对象访问这些值。如何循环键(问题ID)并获取值?
到目前为止,控制器的功能是:
@RequestMapping(value = "/process-answers", method = RequestMethod.GET)
@SuppressWarnings("unchecked")
public @ResponseBody
String processQuizz(@RequestBody String json) {
}
答案 0 :(得分:1)
@PostMapping("/process-answers")
@ResponseBody
public void processQuizz(@RequestBody Map<Integer, List<Integer> quiz) {
quiz.forEach((quizId, answers) -> ... your business logic here ...);
}
现在,您可以直接遍历地图而无需json处理。