400个错误请求 - 带有Map<>的@RequestBody

时间:2017-05-14 13:06:03

标签: spring jackson spring-restcontroller

我无法发送包含(键,值)地图的帖子请求。

地图不适用于@RequestBody

请告知。

感谢。

2 个答案:

答案 0 :(得分:-1)

模特课程:

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@JsonSerialize
public class Model {
    @JsonProperty("fname")
    private String fname;
    @JsonProperty("lname")
    private String lname;
    private Model(){

    }
}

控制器方法:

 @RequestMapping(value = "/url", method = RequestMethod.POST)
    public ResponseEntity<?> method(@RequestBody Map<String, Model> values){
        return ResponseEntity.ok(values);
    }

输入:

   {
    "key1":{
        "fname":"First Name",
        "lname": "Last Name"
    },
    "key2":{
        "fname":"First Name",
        "lname": "Last Name"
    }

}

输出:

   {
    "key1":{
        "fname":"First Name",
        "lname": "Last Name"
    },
    "key2":{
        "fname":"First Name",
        "lname": "Last Name"
    }

}

答案 1 :(得分:-1)

需要映射到请求主体的对象没有默认构造函数。我压倒了一个。 Jackson json api需要默认构造函数。