从.NEt WCF到数组的JavaScript数组的JSON

从.NEt WCF到数组的JavaScript数组的JSON,javascript,jquery,asp.net,json,jqplot,Javascript,Jquery,Asp.net,Json,Jqplot,我正在使用jqPlot,我需要将我从WCF服务收到的JSON转换为: [{ "x": 2, "y": 3 }, { "x": 25, "y": 34 }] 到该数组中: [[2,3],[25,34]] 我尝试了JSON.parse&eval,但没有效果 谢谢将字符串解析为对象数组: var json = '[{ "x": 2, "y": 3 }, { "x": 25, "y": 34 }]'; var o = $.parseJSON(json); 然后用数组替换数组中的每个对象: for

我正在使用jqPlot,我需要将我从WCF服务收到的JSON转换为:

[{ "x": 2, "y": 3 }, { "x": 25, "y": 34 }]
到该数组中:

[[2,3],[25,34]]
我尝试了JSON.parse&eval,但没有效果


谢谢

将字符串解析为对象数组:

var json = '[{ "x": 2, "y": 3 }, { "x": 25, "y": 34 }]';
var o = $.parseJSON(json);
然后用数组替换数组中的每个对象:

for (var i=0; i<o.length; i++) o[i] = [o[i].x, o[i].y];  
for(var i=0;i您可以使用:

var data = [{ "x": 2, "y": 3 }, { "x": 25, "y": 34 }]

var flattenedResult = $.map(data, function(point) {
  return [[ point.x, point.y ]];
});

map
方法将结果展平,因此
flattedResult
将包含
[2,3,25,34]
,而不是
[2,3],[25,34]]
。另外,你忘记了解析JSON的步骤。哇,Encosia先生回答了我的问题。这一定是正常人遇到名人时的感受…@Guffa:你说得对。不过,用第二个数组文本包装返回数组会破坏平坦化。如果他是用jQuery请求的,那么JSON应该在他收到请求时就已经被解析了就是它,所以没必要这样。@Jamie:我肯定我一点也不像名人。@Dave Ward:将返回数组包装成第二个数组将给出结果
[[2,3,25,34]
,而不是
[[2,3],[25,34]]
。这实际上非常有效,而其他答案会产生一个平坦的数组。@Jamie Carruthers:是的,我在发布代码之前测试了代码。:)我第一次尝试了
map
方法,但当我注意到它会使结果平坦时,我使用了一个常规循环。