1

次のJavaScript連想配列があります

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

jquery ajaxで、リスト配列の値だけをjson形式で渡したい。

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

どうすればいいですか?

4

3 に答える 3

2

$.map()値を抽出するために使用できます。

$.ajax({
    data: {
        list: $.map(list, function(val) { return val; })
    },
    ...
});
于 2012-10-12T12:13:22.230 に答える
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));​

デモ。

于 2012-10-12T12:13:46.527 に答える
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]; })};
于 2012-10-12T12:21:13.407 に答える