[英]Sending Json Array in POST request for JavaScript
我在AJAX調用中發送JSON數組時遇到問題。 以下是我的代碼
var company_name = $('input#company_name').val();
var company_localname = $('input#company_localname').val();
var companytype = $('#companytype').val();
if (companytype == 'retailer') {
var bank_name = $('input#bank_name').val();
var account_title = $('input#account_title').val();
var business_nature = $('input#business_nature').val();
var gross_sales = $('input#gross_sales').val();
}
獲取所有值后,我將數據存儲在Json中,如下所示
var jsonArray = [];
jsonArray["company_name"] = company_name;
jsonArray["company_localname "] = company_localname;
if (companytype == 'retailer') {
jsonArray["bank_name"] = bank_name;
jsonArray["account_title"] = account_title;
jsonArray["business_nature"] = business_nature;
jsonArray["gross_sales"] = gross_sales;
}
現在用於在Ajax調用中發送jsonArray
$.ajax({
url : url,
type : "POST",
dataType : 'json',
contentType : 'application/json; charset=UTF-8',
data : JSON.stringify(jsonArray),
success : function(response) {
//Some Code here
}
});
請幫我發送數據。 或告訴我在這里是否有任何錯誤。 謝謝
在JavaScript / JSON中,數組是基於0的索引數據結構。 您在這里使用的內容更像是一張地圖:
var jsonArray = [];
jsonArray["company_name"]=company_name ;
在JavaScript中,您不能使用像這樣的數組(可以,但是您可能不需要)。 對於諸如將字符串映射到對象而不是索引映射到對象的映射這樣的數據結構,只需使用一個對象即可。
或簡而言之:使用var jsonArray = {};
而不是var jsonArray = [];
{}
將創建一個對象,您可以像分配對象一樣分配屬性。 並且JSON.stringify
可以將其正確轉換為如下所示的JSON字符串:
{ "property": value, "otherProperty", otherValue }
做這樣的事情。
$.ajax({
url: url,
type: "POST",
dataType: 'json',
contentType: 'application/json; charset=UTF-8',
data: JSON.parse(JSON.stringify(jsonArray)),
success: function(response) {
//Some Code here
}
});
JSON.parse()方法將字符串解析為JSON,可以選擇轉換解析產生的值。 閱讀有關JSON.parse()方法的更多信息
JSON.stringify()方法將JavaScript值轉換為JSON字符串。 閱讀有關JSON.stringify()方法的更多信息
在這里,您只需發送一個數組並在服務器端解析它。
$.ajax({
url : url,
type : "POST",
dataType : 'json',
data : jsonArray,
success : function(response) {
//Some Code here
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.