当前的Spring启动示例应用程序已创建 . 在请求中,如果有任何未知字段即将到来,那么我们需要抛出错误 .
为了这
@JsonIgnoreProperties(ignoreUnknown = false)
正在使用注释 . 但是,当我打网址时,它无法正常工作 .
请查找以下代码段:
import java.io.IOException; import java.util.List; import javax.validation.Valid; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.journaldev.bootifulmongodb.dal.UserDAL; import com.journaldev.bootifulmongodb.dal.UserRepository; import com.journaldev.bootifulmongodb.model.CardInfo; import com.journaldev.bootifulmongodb.model.User; @RestController @RequestMapping(value =“/”)@JsonIgnoreProperties(ignoreUnknown = false)public class UserController {private final Logger LOG = LoggerFactory.getLogger(getClass());私有最终UserRepository userRepository;私人最终UserDAL userDAL; public UserController(UserRepository userRepository,UserDAL userDAL) @RequestMapping(value =“/ create”,method = RequestMethod.POST,consume = MediaType.APPLICATION_JSON_VALUE,produce = 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();返回
userRepository.save(用户); }
请按以下方式查找示例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>
1 回答
你有几个选择
把
@JsonIgnoreProperties
放在你反序列化的类而不是Spring控制器中 . 但是,我看到你要反序列化的类是com.journaldev.bootifulmongodb.model.User
所以很可能你不能修改它 .配置对象映射器实例:
spring.jackson.deserialization.fail-上未知的属性=真
有关详细信息,请参阅section 76.3 of Spring Boot's reference .