Java 我可以在一个请求中将多个参数组合到控制器的单个参数中吗?

Java 我可以在一个请求中将多个参数组合到控制器的单个参数中吗?,java,spring-boot,Java,Spring Boot,我需要使用一个我无法控制的请求。当客户端将数组['a','b','c']作为x发布时 我实际收到的是: ?x.0=a&x.1=b&x.2=c 我认为正确的编码是?x=a&x=b&x=c,但正如前面提到的,我不能控制请求 我是否可以进行某种拦截,将我的x.index请求修正为预期的编码?我曾尝试编写一个转换器,但我只能说服您将单个参数映射到另一种类型。您可以实现自己的并从对象绑定x参数。请看: 如果它是一个处理奇怪参数约定的单一端点,那么将HttpServletRequest作为方法参数并在调用服

我需要使用一个我无法控制的请求。当客户端将数组
['a','b','c']
作为
x
发布时

我实际收到的是:
?x.0=a&x.1=b&x.2=c

我认为正确的编码是
?x=a&x=b&x=c
,但正如前面提到的,我不能控制请求


我是否可以进行某种拦截,将我的
x.index
请求修正为预期的编码?我曾尝试编写一个
转换器
,但我只能说服您将单个参数映射到另一种类型。

您可以实现自己的并从对象绑定
x
参数。请看:

如果它是一个处理奇怪参数约定的单一端点,那么将
HttpServletRequest
作为方法参数并在调用服务之前在那里完成工作将更具可读性


老实说,我宁愿强制客户机更改请求结构。对于使用GET传递数组,它看起来不是一个有效的语法。

您可以提供请求参数和url。看起来你需要矩阵参数。如果是这种情况,您可以实现。发布数组没有规范的HTTP标准。因此,如果您这样做,所使用的格式将完全取决于您选择使用的库。至于拦截,您可以使用servlet过滤器修改请求的参数。>*老实说,我宁愿强制客户端更改请求结构。*完全同意您的看法。不幸的是,这是不可能的。这是不合作的。@阿斯旺考虑在一个地方保存类似的黑客,也许是一个新的网关类型的微服务,用于映射客户端格式。如果可以避免的话,不要让它污染多个地方。