0

我的代码看起来有点像这样:

var data = $(this).serializeArray(data);

$.ajax({
    data: JSON.stringify(data)
});

我也运行 a console.log,我看到 JSON 字符串格式为:

[{"name":"inputName", "value":"inputValue"}]

而我期待:

[{"inputName":"inputValue"}]

我误解了 JSON 格式还是有办法让它正确格式化?

4

3 回答 3

0

JSON(嗯,任何散列/字典)被格式化为{ property : value }(或{ key : value })。如果您想要每个value井……值!for..in在一个数组中,你可以用一个简单的语句来做到这一点。

vals = [];
hash = {a: 1, b: 2, c: 3};
for (item in hash) {
    vals.append(hash[item]);
}

console.log(vals);  // => [1, 2, 3]

但是直接你的答案,你永远不会看到[{"inputName":"inputValue"}],因为inputName不是键,而是变量(就像inputValue 一样)

于 2012-06-03T14:40:50.173 回答
0

格式正确,如文档中所述:http: //api.jquery.com/serializeArray/

于 2012-06-03T14:41:22.177 回答
0

$.serializeArray产生这样的数组。

您可以使用$.map修改输出$.serializeArray以构建您想要的数组

var customArray = $.map(data,function(obj,i){
    var temp  = {};
    temp[obj.name] = obj.value;        
    return temp;
});

工作小提琴

于 2012-06-03T15:06:04.233 回答