[英]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.