Spring 无法将json映射到POJO
我的控制器如下所示Spring 无法将json映射到POJO,spring,spring-boot,Spring,Spring Boot,我的控制器如下所示 @CrossOrigin @RequestMapping(value = "/addenquiry", method = RequestMethod.POST, produces = "application/json") public Response<Enquiry> addEnquiry(@RequestBody Enquiry enquiry,HttpSession session) { Response<Enquiry> respon
@CrossOrigin
@RequestMapping(value = "/addenquiry", method = RequestMethod.POST, produces = "application/json")
public Response<Enquiry> addEnquiry(@RequestBody Enquiry enquiry,HttpSession session) {
Response<Enquiry> response = new Response<Enquiry>();
@Component
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Enquiry {
private String enqId;
//Getters and setters which are public
它没有被映射,并打印空值。您必须删除
查询
类中的@组件
注释。如果添加一个Spring注释,如@Component
,@Controller
,@Service
,则指定该类将是一个springbean。默认情况下,该bean将是一个单例bean,并且只在上下文中存在一个单例bean
在您的情况下,您希望根据每个请求发布一个新的查询对象。幕后的春天和杰克逊会为你做到这一点。如果没有@组件
注释,它将是一个正常的POJO,并且在spring上下文中不存在
站点说明:如果您确实希望查询
处于spring上下文中,您可以留下@组件
注释并添加范围原型
@Component
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Enquiry {}
这将指定spring在您每次请求时都创建一个新实例。您必须删除
查询
类中的@Component
注释。如果添加一个Spring注释,如@Component
,@Controller
,@Service
,则指定该类将是一个springbean。默认情况下,该bean将是一个单例bean,并且只在上下文中存在一个单例bean
在您的情况下,您希望根据每个请求发布一个新的查询对象。幕后的春天和杰克逊会为你做到这一点。如果没有@组件
注释,它将是一个正常的POJO,并且在spring上下文中不存在
站点说明:如果您确实希望查询
处于spring上下文中,您可以留下@组件
注释并添加范围原型
@Component
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Enquiry {}
这将指定每次您请求spring时,它都会创建一个新实例。其他类可以映射,但不能映射这个类。为什么有
在json属性名称的末尾,{“enqId;”
?没有;也没有working@StanislavL:你能看到没有发生这种情况的任何原因吗。其他类可以映射,但不能映射这个类。为什么json的属性名后面有;
,{“enqId;”
?没有;也没有working@StanislavL当前位置你能看出这种情况没有发生的原因吗。