关联数组值为json

时间:2012-10-12 12:09:12

标签: javascript jquery ajax json

我有

之后的javascript关联数组
var list = {};
list['a'] = 'one';
list['b'] = 'two';
list['c'] = 'two';

通过jquery ajax,我想只传递json格式的list数组的值。

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

我该怎么做?

3 个答案:

答案 0 :(得分:2)

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

$.ajax({
    data: {
        list: $.map(list, function(val) { return val; })
    },
    ...
});

答案 1 :(得分: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.

答案 2 :(得分: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]; })};