首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解析json问题: object.property未定义

解析json问题: object.property未定义
EN

Stack Overflow用户
提问于 2012-07-24 20:51:22
回答 2查看 2.8K关注 0票数 2

下面是一个ajax调用返回的json:

代码语言:javascript
运行
复制
{
    "StumbleUpon": 0,
    "Reddit": 0,
    "Facebook": {
        "commentsbox_count": 0,
        "click_count": 0,
        "total_count": 0,
        "comment_count": 0,
        "like_count": 0,
        "share_count": 0
    },
    "Delicious": 0,
    "GooglePlusOne": 1,
    "Buzz": 0,
    "Twitter": 1,
    "Diggs": 0,
    "Pinterest": 0,
    "LinkedIn": 1
}

我试图在jquery中处理它,但是由于我不能理解的某些原因,Facebook.total_count是未定义的。我希望不是这样,因为控制台告诉我收到了上面的json。此外,所有其他(data.Twitter等)工作。下面是产生错误的回调函数。我做错了什么?

代码语言:javascript
运行
复制
function(data){

                console.log(data);
//this line throws the error
                var fb = data.Facebook;
                var total = parseInt(data.Twitter + parseInt(fb.total_count) + data.GooglePlusOne + data.Pinterest + data.LinkedIn);
// rest of code.
}

请参阅jsFiddle上的代码。

EN

Stack Overflow用户

回答已采纳

发布于 2012-07-24 21:07:15

从根本上说,只要data已经反序列化,就可以使用that code works。如果它没有,也没有...

ajax调用的...add dataType: "JSON"

代码语言:javascript
运行
复制
$.ajax({
    // ...
    dataType: "JSON",
    // ...
});

...or对结果使用$.parseJSON

代码语言:javascript
运行
复制
function(data) {
    if (typeof data === "string") {
        data = $.parseJSON(data);
    }
    // ...
}

注意:您不需要对这些数字使用parseInt,它们已经是JSON中的数字,并且将被正确地反序列化。

票数 5
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11631242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档