Json 如何为特定spring rest控制器添加自定义objectMapper
我的微服务中有两个控制器都是POST,都接受请求体作为JSON,一个工作正常,另一个是来自某个Othert团队的JSON输入,它具有根类名,因此我需要为这个稍后的控制器编写自定义对象映射器,请大家帮助 请查找下面的代码Json 如何为特定spring rest控制器添加自定义objectMapper,json,spring,spring-restcontroller,objectmapper,Json,Spring,Spring Restcontroller,Objectmapper,我的微服务中有两个控制器都是POST,都接受请求体作为JSON,一个工作正常,另一个是来自某个Othert团队的JSON输入,它具有根类名,因此我需要为这个稍后的控制器编写自定义对象映射器,请大家帮助 请查找下面的代码 @RestController @Slf4j public class Controller2 { @RequestMapping(value = "/some/update", method = RequestMethod.POST) public String
@RestController
@Slf4j
public class Controller2 {
@RequestMapping(value = "/some/update", method = RequestMethod.POST)
public String updateEmd(@RequestBody final UpdateEMDRequest updateEMDRequest) throws JsonProcessingException {
updateEMDRequest.getBookingReference()); // null now
return "success";
}
}
示例json如下所示:
{
"UpdateEMDRequest":{
"TransactionStatus":"SUCCESS",
"UniqueTransactionReference":"046060420",
"PreAuthReference":"040520420",
"BookingReference":"8PJ",
"CarrierCode":"AS",
"TransactionMode":"Batch",
"CallBackUrl":"www.test.com/op/update",
"Offers":[
{
"Offer":{
"traveler":{
"firstName":"AHONY",
"surname":"DNEN",
"EMD":[
"081820470"
]
}
}
}
]
}
}
UpdateEMDRequest,java
@JsonInclude(Include.NON_NULL)
public class UpdateEMDRequest {
@JsonProperty("UniqueTransactionReference")
private String uniqueTransactionReference;
@JsonProperty("TransactionStatus")
private String transactionStatus;
@JsonProperty("PreAuthReference")
private String preAuthReference;
@JsonProperty("BookingReference")
private String bookingReference;
@JsonProperty("CarrierCode")
private String carrierCode;
@JsonProperty("TransactionMode")
private String transactionMode;
@JsonProperty("CallBackUrl")
private String callBackUrl;
@JsonProperty("Offers")
private List<Offers> offers;
}
@JsonInclude(Include.NON_NULL)
公共类UpdateEMDRequest{
@JsonProperty(“UniqueTransactionReference”)
私有字符串uniqueTransactionReference;
@JsonProperty(“交易状态”)
私有字符串事务状态;
@JsonProperty(“预授权引用”)
私有字符串预授权引用;
@JsonProperty(“记账参考”)
私人字符串预订参考;
@JsonProperty(“CarrierCode”)
私有字符串载波码;
@JsonProperty(“TransactionMode”)
私有字符串事务模式;
@JsonProperty(“回调URL”)
私有字符串回调URL;
@JsonProperty(“报价”)
私人名单优惠;
}
因此,此json未正确解析,并且updateEMDRequest的属性始终为null