[英]JSON.stringify loses/missing fields
这是我的代码:
// get from ajax
$.ajax({
'async': false,
'global': false,
'url': url,
'dataType': "json",
'success': function (d) {
data = d;
// code here to define & calculate voteCount
data.votes.totalVotes = voteCount;
localStorage.setItem(url, data);
}
, 'error': function (msg) {
throw new Error("Error retrieving data from " + url);
}
});
在此行之后:
data.votes.totalVotes = voteCount;
...在控制台中,如果输入: data.votes.totalVotes
, data.votes.totalVotes
得到期望的值。
但是,如果键入: JSON.stringify(data)
,则不存在totalVotes
属性。
知道为什么不可以,或者如何解决吗?
**注意:已编辑,因为据我所知这不是异步问题,该行为也存在于成功回调中。
这是$.ajax
调用的正确版本:
var data
$.ajax({
'async': false,
'global': false,
'url': url,
'dataType': "json",
'success': function (d) {
data = d;
data.votes.totalVotes = voteCount;
localStorage.setItem("myData", JSON.stringify(data));
}, 'error': function (msg) {
throw new Error("Error retrieving data from " + url);
}
});
好吧,对不起,我很傻。 votes
是一个数组,因此我将totalVotes
设置为数组的属性,这在对象中很好,但是在序列化时会被省略。
如果其他人像我一样愚蠢,也许这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.