2016-05-31 95 views
0

我在AJAX調用中發送JSON數組時遇到問題。以下是我的代碼在POST請求中發送Json數組請求JavaScript

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; 
} 

現在發送的所有值後,jsonArray在AJAX調用

$.ajax({ 
    url : url, 
    type : "POST", 
    dataType : 'json', 
    contentType : 'application/json; charset=UTF-8', 
    data : JSON.stringify(jsonArray), 
    success : function(response) { 
     //Some Code here 
    } 
}); 

請幫助我發送數據。或者告訴我,如果我在這裏犯了什麼錯誤。謝謝

回答

0

做這樣的事情。

$.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 
    } 
    }); 
+0

感謝您的回覆。但抱歉沒有工作 –

2

在JavaScript/JSON數組中,索引爲0的數據結構爲0。你所使用這裏更像是一個地圖:

var jsonArray = []; 
jsonArray["company_name"]=company_name ; 

在JavaScript中不能使用數組像這樣的(當然你可以,但它可能不是你想要的)。對於像映射這樣的數據結構,它將字符串映射到對象,而不是對象的索引,只需使用一個對象即可。

或簡稱:使用var jsonArray = {};而不是var jsonArray = [];{}將創建一個對象,你可以指定屬性喜歡你做。和JSON.stringify將正確地把這種成JSON串這樣的:

{ "property": value, "otherProperty", otherValue } 
+0

非常感謝。有效 :) –

0

的JSON.parse()來方法解析一個字符串作爲JSON,任選轉化通過解析所產生的值。 Read more about JSON.parse() method

JSON.stringify()方法將JavaScript值轉換爲JSON字符串。 Read more about JSON.stringify() method

在這裏,您只需發送一個數組並將其解析到服務器端即可。

$.ajax({ 
    url : url, 
    type : "POST", 
    dataType : 'json', 
    data : jsonArray, 
    success : function(response) { 
     //Some Code here 
    } 
});