4
我有一個彈簧控制器,需要發佈和它的作品。唯一的問題是,我們的短信提供商將會向我們發送包含帶有大寫首字母鍵頭,例如:Spring @RequestBody覆蓋
{
"FromPhoneNumber":"15177754077",
"ToPhoneNumber":"17572046106",
"ResponseReceiveDate":"7/29/2014 5:25:10 AM",
"Message":"PIN 1234"
}
Spring會拋出一個錯誤,如:
Could not read JSON: Unrecognized field "FromPhoneNumber" (class com.talksoft.spring.rest.domain.CDynePost), not marked as ignorable (4 known properties: "responseReceiveDate", "toPhoneNumber", "fromPhoneNumber", "message"])
因此,必須是我重寫此行爲的一種方式。這裏是處理CDYNE職位控制器方法:
@RequestMapping(method = RequestMethod.POST, value="/celltrust")
public ResponseEntity<String> cellTrustPost(@RequestBody CDynePost cDynePost) {
String message = "FAILED";
UserInteraction userInteraction = getUserInteraction(cDynePost);
boolean success = someSpringService.logMessage(userInteraction);
if (success) {
message = "OK";
return new ResponseEntity<String>(message, HttpStatus.ACCEPTED);
} else {
return new ResponseEntity<String>(message, HttpStatus.FAILED_DEPENDENCY);
}
}
這裏是CDynePost類:
public class CDynePost {
private String FromPhoneNumber;
private String ToPhoneNumber;
private String ResponseReceiveDate;
private String Message;
public String getFromPhoneNumber() {
return FromPhoneNumber;
}
public void setFromPhoneNumber(String FromPhoneNumber) {
this.FromPhoneNumber = FromPhoneNumber;
}
public String getToPhoneNumber() {
return ToPhoneNumber;
}
public void setToPhoneNumber(String ToPhoneNumber) {
this.ToPhoneNumber = ToPhoneNumber;
}
public String getResponseReceiveDate() {
return ResponseReceiveDate;
}
public void setResponseReceiveDate(String ResponseReceiveDate) {
this.ResponseReceiveDate = ResponseReceiveDate;
}
public String getMessage() {
return Message;
}
public void setMessage(String Message) {
this.Message = Message;
}
}
我看了ObjectMapper但我不知道如何工作到我的控制器此,並且事實告訴我,如果Spring將免費提供,我寧願不必寫一堆額外的類。
字段可以是大寫還是小寫?或者只是其中之一? – 2014-09-01 21:05:40
在POST中的鍵將混合大小寫,如:FromPhoneNumber,ToPhoneNumber,ResponseReceiveDate,消息 – JonasJSchreiber 2014-09-01 21:13:07
Sotirios Delimanolis得到它,8分鐘響應時間!謝謝StackOverflow! – JonasJSchreiber 2014-09-01 21:22:56