2014-03-13 88 views
1

我有一個鍵值對數組,我需要通過ajax發送到另一個函數。我的陣列看起來像這樣傳遞鍵值數組AJAX

 var vitals=new Array(); 
     var vitals["height"]=170; 
     var vitals["weight"]=55; 

的AJAX功能

 $.ajax({ 
    type: "POST", //GET or POST or PUT or DELETE verb 
    url: url, // Location of the service 
    data: JSON.stringify({ccdEntity: vitals }), //Data sent to server 
    contentType: "application/json; charset=utf-8", // content type sent to server 
    dataType: "json", //Expected data format from server 
    processdata: true, //True or False 
    success: function (msg) {//On Successfull service call 
     ServiceSucceeded(msg); 
    } 

和功能獲得的價值是

public bool GenerateCcd(Array ccdEntity) 

當我運行該程序的功能不顯示陣列與鍵值,但是當我傳遞一個正常的數組(即)生命體[0] = 170,它工作正常。我需要對發送上述數據進行更改嗎?

編輯: 試圖通過上面的數組作爲JSON對象

   var vitals= { 
     "height": "170", 
     "weight": "55"} 

,但結果還是一樣

+1

更改'vitals'聲明是'VAR命脈= {};'。這樣你就可以正確使用鍵/值對結構。使用一個數組,你設置了沒有序列化的屬性。一個對象('{}')真的是你在尋找 – Ian

+0

@Ian Thanx的答覆。嘗試改變但值仍然沒有通過。 –

回答

1

使用這樣的事情::

function TestAjax() { 
    var vitals= []; 

    for (var i = 0; i < 5; i++) { 
     vitals.push({ Height: (170+i), Weight: (55+i) }); 
    } 

    $.ajax({ 
     type: 'POST', 
     url: url, 
     contentType: "application/json", 
     data:JSON.stringify({vitals: vitals}), 
     success: function (data) { 
      alert("Succeded"); 
     } 
    }); 
} 
+1

OP爲什麼要這樣做?什麼是問題,你的代碼如何解決它? **解釋**你的解決方案! –

+0

這裏用戶需要[Key,Value] pair Array, 的解決方案,並且在我給出的解決方案中,這對產品是基於:[height,weight] ,它被傳遞到數組中的服務器端[key,value ]格式。 @FelixKling只需看看我的編輯代碼。 – Rahul

+1

你應該[編輯]你的問題,並添加解釋。 –

0

讓你vitals對象數組而不是數組;;

var vitals={'height': '170', 'weight': '55'}; 

,並張貼喜歡你的數據:

data: JSON.stringify(vitals) 
+0

試過這種方法,但值沒有通過。 Thanx反正:) –