2012-10-12 40 views
1

我有以下关联数组值JSON

var list = {}; 
list['a'] = 'one'; 
list['b'] = 'two'; 
list['c'] = 'two'; 

的jQuery AJAX脚本关联数组,我想通过JSON格式只列出阵列的值。

{"list":["one","two","two"]} 

我该怎么办?

+2

注意:它不是一个关联数组,它是一个对象。 –

回答

2

您可以使用$.map()提取值:

$.ajax({ 
    data: { 
     list: $.map(list, function(val) { return val; }) 
    }, 
    ... 
}); 
0
var list = {}; 
list['a'] = 'one'; 
list['b'] = 'two'; 
list['c'] = 'two'; 

var newObj = { 
    "list": [] 
}; 

for (key in list) { 
    newObj.list.push(list[key]); 
} 

alert(JSON.stringify(newObj));​ 

Demo.

0

有没有关联阵列在JavaScript中,只有这些对象的属性有没有秩序。这意味着如果你想建立他们的数组,你需要的属性首先排:

var list = {a:'one', b:'two', c:'two'}; 

var result = {list:[]}, 
    keys = []; 
for (var key in list) 
    keys.push(key); 
keys.sort(); 
for (var i=0; i<keys.length; i++) 
    result.list[i] = list[keys[i]]; 
return JSON.stringify(result); 

或用一些辅助功能,这可能不被所有的浏览器本身支持同一件事:

return {list: Object.keys(list).sort().map(function(key) { return list[key]; })};