看到将JSON RequestBody绑定到POJO是很常见的,如下所示:

@RequestMapping(value="/users", headers="Accept=application/json",method=RequestMethod.POST)
public void create(@RequestBody CustomerInfo customerInfo){
...
}


是否可以将@RequestBody绑定到非POJO,但可以绑定到其他数据类型,例如原始和非原始数据类型?

例如:

@RequestMapping(value="/users", headers="Accept=application/json",method=RequestMethod.POST)
public void create(@RequestBody Set<Integer> ids){
...
}

最佳答案

对的,这是可能的。

根据您的示例,

public void create(@RequestBody Set<Integer> ids){
    ...
}


它会收到像[1,2,3]这样的东西,因为请求正文完全正确。

再举一个原始的例子

public void create(@RequestBody int id) {
    ...
}


它会收到像1这样的东西,因为请求正文完全正确。

但是,对于后一个示例,我不会说它是application/json

关于java - Spring将@RequestBody绑定(bind)到其他数据类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42289685/

10-09 12:58