2014-03-13 49 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反正:) –