繁体   English   中英

JSON.stringify丢失/丢失字段

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM