当前位置: 首页 > 面试题库 >

如何在GET调用中将地图作为请求参数发送

闻人宇定
2023-03-14
问题内容

是否可以在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);
    }

我从邮递员发送了以下请求

http://localhost:8080/test?params={a:abc,b:bcd}

一切正常,没有错误和异常。但是我收到的地图看起来像key=params , value={a:abc,b:bcd}

我希望收到的地图像 key1="a" value1=abc ,key2="b" value2="bcd"


问题答案:

这在Spring MVC指南中有记录:

当将@RequestParam注释声明为Map<String, String>MultiValueMap<String, String>参数时,将使用所有请求参数填充地图。

这意味着您当前得到的响应是预期的结果。在Map包含所有参数的列表,并在你的情况,你只有叫一个参数param

如果需要自定义参数映射,则必须自己实现。由于您也不使用JSON,因此您可能必须手动解析参数。

但是,如果您的目标是动态映射参数,则仍然可以使用Map<String, String>,但必须将请求更改为:

http://localhost:8080/test?a=abc&b=bcd


 类似资料:
  • 问题内容: 我有一个非常长的数组和字符串,我想通过Alamofire发送,尽管我不知道如何将原始JSON作为参数发送。JSON看起来有点像 除了让它表现得像Swift数组然后进行序列化外,还有什么方法可以将这个JSON作为Alamofire中的参数传递? 谢谢! 编辑: 我能够在文本编辑器中发挥一些魔力来获取以Swift数组样式设置的参数(如所示),因此根据Eric的建议,将和制作成Diction

  • 问题内容: 如何从JavaScript请求中获取“ GET”变量? 是jQuery还是YUI!内置此功能吗? 问题答案: 所有数据均在 您必须解析字符串,例如。 只需以GET变量名作为参数调用该函数,例如。 如果变量没有值或不存在,则此函数将返回变量value或undefined

  • 问题内容: 我应该如何在jQuery Ajax请求中传递查询字符串值?我目前按照以下方式进行操作,但是我敢肯定有一种更清洁的方法,不需要我手动编码。 我已经看到了将查询字符串参数作为数组传递的示例,但是我看到的这些示例没有使用模型,而是直接使用。例如: 我更喜欢使用$ .ajax()格式,因为这是我习惯的格式(没有特别好的理由-只是个人喜好)。 编辑09/04/2013: 在我的问题结束(如“太过

  • 我应该如何在jQuery Ajax请求中传递查询字符串值?我目前是这样做的,但我肯定有一个更干净的方法,不需要我手动编码。 我见过查询字符串参数作为数组传递的示例,但这些示例没有使用模型,而是直接使用。例如: 我更喜欢使用$.ajax()格式,因为这是我习惯的格式(没有特别好的理由--只是个人偏好)。 编辑09/04/2013: 在我的问题结束后(因为“太本地化”),我发现了一个相关的(相同的)问

  • 我正在使用SoundCloud api创建一个应用程序,并尝试附加用户输入的字符串值,但它在界面中显示为null,我如何在url中附加该值? MainActivity.java SCService.java 搜索的字符串在我的SoundCloud.java类 我想在GET参数中附加那个SCURL字符串,但它显示了SCURL的null值,我如何实现这一点? 更新:我如上所述更改了代码,但出现了此错误

  • 问题内容: 我想在url中发送json数据,如下所示。 我怎样才能做到这一点? 问题答案: URL编码您的详细信息参数: