我的代码看起来有点像这样:
var data = $(this).serializeArray(data);
$.ajax({
data: JSON.stringify(data)
});
我也运行 a console.log
,我看到 JSON 字符串格式为:
[{"name":"inputName", "value":"inputValue"}]
而我期待:
[{"inputName":"inputValue"}]
我误解了 JSON 格式还是有办法让它正确格式化?
我的代码看起来有点像这样:
var data = $(this).serializeArray(data);
$.ajax({
data: JSON.stringify(data)
});
我也运行 a console.log
,我看到 JSON 字符串格式为:
[{"name":"inputName", "value":"inputValue"}]
而我期待:
[{"inputName":"inputValue"}]
我误解了 JSON 格式还是有办法让它正确格式化?
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 一样)
格式正确,如文档中所述:http: //api.jquery.com/serializeArray/
$.serializeArray产生这样的数组。
您可以使用$.map修改输出$.serializeArray
以构建您想要的数组
var customArray = $.map(data,function(obj,i){
var temp = {};
temp[obj.name] = obj.value;
return temp;
});