【问题标题】:Process json object in spring controller在spring控制器中处理json对象
【发布时间】:2018-01-30 17:27:59
【问题描述】:

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

我使用 js 函数将问题 ID 和提交的答案 ID 存储在 json 对象中,如下所示:

{
   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) {

}

【问题讨论】:

    标签: javascript json ajax spring spring-mvc


    【解决方案1】:
    @PostMapping("/process-answers")
    @ResponseBody 
    public void processQuizz(@RequestBody Map<Integer, List<Integer> quiz) {
       quiz.forEach((quizId, answers) -> ... your business logic here ...);
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-24
      • 2023-03-27
      • 2018-02-28
      • 2017-03-07
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 2020-10-10
      相关资源
      最近更新 更多