在spring控制器中处理json对象

时间:2018-01-30 17:28:00

标签: javascript json ajax spring spring-mvc

我有这个基本的测验应用程序,我正在尝试构建,现在我仍然坚持在春季处理提交的测验答案。

我使用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) {

}

1 个答案:

答案 0 :(得分:1)

@PostMapping("/process-answers")
@ResponseBody 
public void processQuizz(@RequestBody Map<Integer, List<Integer> quiz) {
   quiz.forEach((quizId, answers) -> ... your business logic here ...);
}

现在,您可以直接遍历地图而无需json处理。