JSON有额外的格式,指定的名称/值?

时间:2012-06-03 14:35:58

标签: javascript jquery json

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

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

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

我也运行console.log,我看到格式为:

的JSON字符串

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

虽然我期待:

[{"inputName":"inputValue"}]

我是否误解了JSON格式,或者有没有办法让它正确格式化?

3 个答案:

答案 0 :(得分: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不是关键,而是变量(就像inputValu e)

答案 1 :(得分:0)

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

答案 2 :(得分:0)

$.serializeArray生成这样的数组。

您可以修改$.serializeArray的输出,使用$.map

构建一个您想要的数组
var customArray = $.map(data,function(obj,i){
    var temp  = {};
    temp[obj.name] = obj.value;        
    return temp;
});

Working Fiddle

相关问题