gpt4 book ai didi

java - 一些字符(例如括号)将在 Spring @RequestBody 中进行编码。如何解码它们?

转载 作者:行者123 更新时间:2023-11-30 02:08:21 25 4
gpt4 key购买 nike

让我们考虑一下这段代码:

@ResponseBody
@RequestMapping(value = "/getFiltered", method = RequestMethod.POST)
public ResponseEntity<OraPhysicalGoodMiniDataWrapper> getFilteredProducts(@RequestBody OraSalesOfGoodsFilters filters) {
return oraProductListController.getFilteredProducts(filters);
}

filters 参数具有名为 searchValue 的字符串。

问题是:当我在 json 中传递 searchValue: "(2016)" 时,Spring Controller 收到 searchValue=(2016&# 41;。我尝试使用 Java URLDecoder 对其进行解码,但没有成功。

我的问题是:有没有任何Java方法可以解码字符串中的所有此类字符?或者我应该编写自己的方法?

最佳答案

这是您的问题解决方案。使用 javascript 或 spring 设置。

Javascript

var param = {
"searchValue": "(2016)"
};

$.ajax({
type: 'POST',
dataType: 'JSON',
data: JSON.stringify(param),
contentType:"application/json; charset=UTF-8",
url: '/test/filter',

error: function() {
// error
},
success: function(returnJSON) {
// success
}
}):

Spring 设置

Pom.xml

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.0.4</version>
</dependency>

servlet.xml

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>

关于java - 一些字符(例如括号)将在 Spring @RequestBody 中进行编码。如何解码它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50812533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com