您好朋友,我從2天開始處理這個問題,但無法解決。我希望stackoverflow可以幫助我。通過Ajax POST將JSON對象映射到Spring MVC模型
問題:我已經通過ajax發送了JSON對象,在後端,我有一個包含其他模型對象的類(名爲:SalesCommandObject),這些對象是getters和setters。 然後嘗試將「SalesCommandObject」類型的JSON對象發送到控制器方法。這樣json數據就可以映射到模型數據中。
但服務器拋出錯誤:「400錯誤請求:客戶端發送的請求在語法上不正確」。
我發表了整個代碼。請檢查並幫助我。
//代碼爲Ajax POST:
var salesCommandObject = {};
salesCommandObject.CustomerInfo =
{
"address1": "Address_1",
"city": "City",
"pin": "PIN"
};
salesCommandObject.SalesModel =
{
"locality":'Loc1',
"shippingType":'Regular',
"shippingCost":20
};
$.ajax
({
type: "POST",
dataType : 'json',
async : true,
url: "http://localhost:8080/OnlineStore/kmsg/grocery/SaveSalesOrder",
data : JSON.stringify(salesCommandObject),
contentType: "application/json; charset=utf-8"
}).done(function(data,type,xml)
{
alert("result");
console.log(data);
}).fail(function()
{
alert("Something Bad Happened, Service failed");
})
//控制器代碼接收JSON對象:
@RequestMapping(value = "/SaveSalesOrder", method = RequestMethod.POST, consumes=MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody String SaveCustomerOrder(@RequestBody SalesCommandObject salesCommandObject) throws Exception
{
CustomerModel cust = salesCommandObject.getCustomerInfo();
SalesModel sale = salesCommandObject.getLocality();
System.out.println(cust.getAddress1());
System.out.println(sale.getLocality());
return "Success";
}
//類的代碼模型salesCommandObject
public class SalesCommandObject
{
private CustomerModel CustomerInfo = new CustomerModel();
private List<SalesItemsModel> salesData ;
private SalesModel salesModel = new SalesModel();
private SalesDeliverySlotsModel salesDelSlotsModel = new SalesDeliverySlotsModel();
private List<ItemsForSaleModel> itemsforSale ;
// getters and setters here//
}
數據「locality」:'Loc1'是否被映射? –
是的,我的朋友單引號或雙引號不會打擾json太多,如果數據是一個變量,那麼兩個都將被視爲字符串數據,那麼你不必提供任何報價。 – RishiPandey
您可以發佈您的模型類的詳細信息:「客戶信息」和「銷售模式」 –