Aru*_*wda 3 java rest model-view-controller spring-boot postman
是否可以在GET调用中将map作为参数发送.我搜索,我可以找到列表和集合.但没有找到任何地图收集.
我尝试了以下,我的控制器方法看起来像这样.
@GetMapping("/test")
public ResponseEntity<?> mapTest(@RequestParam Map<String,String> params) {
LOG.info("inside test with map "+ params );
return new ResponseEntity<String>("MAP", HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)
我发了邮递员的以下要求
http://localhost:8080/test?params={a:abc,b:bcd}
Run Code Online (Sandbox Code Playgroud)
一切正常,没有错误和例外.但是我收到的地图看起来像key=params , value={a:abc,b:bcd}
我希望收到的地图就像 key1="a" value1=abc ,key2="b" value2="bcd"
当
@RequestParam注释声明为Map<String, String>或MultiValueMap<String, String>参数时,将使用所有请求参数填充映射.
这意味着您当前获得的响应是预期结果.它Map包含所有参数的列表,在您的情况下,您只有一个名为的参数param.
如果您需要自定义参数映射,则必须自己实现.由于您还没有使用JSON,因此您可能必须手动解析参数.
但是,如果您的目标是拥有动态参数图,您仍然可以使用Map<String, String>,但您必须将您的请求更改为:
http://localhost:8080/test?a=abc&b=bcd
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6590 次 |
| 最近记录: |