spring mvc控制器接受具有可变数目的键/值的JSON对象

我知道我需要接受的JSON对象将始终是单个键和值。 我试图用@RequestBody Map和@RequestBody Map编写我的Spring MVC控制器,但是我总是收到400个错误请求。 当我将@RequestBody更改为字符串时,我看到我的数据通过,并且没有返回错误的请求响应。是否可以编写一些内容来接受任意的JSON对象,该JSON对象将始终符合作为单个密钥的合约值?

@RequestMapping(value = "/advancedSearch", method = RequestMethod.POST,consumes ="application/json",produces = "application/json")
@ResponseBody
public MyResponse performAdvancedSearch(@RequestBody String advancedFormData) throws Exception{

这是正在使用String的映射...

样本JSON-

    {"name":"frank","Type":"Lumber"}

当从前端发布时,我会调用JSON.stringify()来创建数据。另外,JSON将总是如此简单,没有嵌套的列表/对象只是直键/值。 服务器端从来不知道将有多少个键值对进来,它不知道所有潜在的键,所以我不能创建一个简单的POJO。


让你的生活变得简单并创建一个班级

public class AdvancedFormData
    private String name;
    private String type; // make it lower case in your json too
    // appropriate getters and setters and a no-arg constructor for Jackson
}

并使用

public MyResponse performAdvancedSearch(@RequestBody AdvancedFormData advancedFormData) throws Exception{
链接地址: http://www.djcxy.com/p/48475.html

上一篇: spring mvc controller accept JSON object with variable number of keys/values

下一篇: How to post response from worker thread to client via Spring MVC?