作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前Spring Boot示例应用创建正常。在请求中,如果有任何未知字段到来,那么我们需要抛出一个错误。
为此使用了 @JsonIgnoreProperties(ignoreUnknown = false)
注解。但是,当我访问该 URL 时,它不起作用。
请查找如下代码片段:
@RestController @RequestMapping(value = "/")
@JsonIgnoreProperties(ignoreUnknown = false) public class
UserController {
private final Logger LOG = LoggerFactory.getLogger(getClass());
private final UserRepository userRepository;
private final UserDAL userDAL;
public UserController(UserRepository userRepository, UserDAL userDAL){
this.userRepository = userRepository;
this.userDAL = userDAL;
}
@RequestMapping(
value = "/create", method = RequestMethod.POST,
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE
)
public User addNewUsers(@RequestBody @Valid User user)
throws JsonProcessingException {
LOG.info("Saving user.");
CardInfo cardInfo = new CardInfo();
cardInfo.setCardId("12345678901");
user.setCardInfo(cardInfo);
ObjectMapper mapper = new ObjectMapper();
String jsonString = mapper.writeValueAsString(cardInfo);
user.setCardInfo1(jsonString);
userDAL.getAllUsers();
return userRepository.save(user);
}
请查找示例Pom如下:http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0
<groupId>com.journaldev.spring</groupId>
<artifactId>spring-boot-mongodb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring-boot-mongodb</name>
<description>Spring Boot MongoDB Example</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
最佳答案
您至少有 3 个选择:
将 @JsonIgnoreProperties
放在您反序列化的类上,而不是在 Spring Controller 中。
com.journaldev.bootifulmongodb.model.User
,因此您很可能无法修改它。配置您的 ObjectMapper实例:
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
Customize Spring Boot's Jackson Object Mapper - 通过设置正确的环境属性:
spring.jackson.deserialization.fail-on-unknown-properties=true
关于spring-boot - JsonIgnoreProperties 不适用于 spring boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50237435/
我是一名优秀的程序员,十分优秀!