首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法访问返回对象中的属性

无法访问返回对象中的属性
EN

Stack Overflow用户
提问于 2011-05-27 22:00:44
回答 2查看 1.7K关注 0票数 0

我有一个问题,我似乎不能查询我的JSON返回,我可以打印出整个响应,这是我的JSON响应,我只能在执行msgBox()提示时看到以下内容:

代码语言:javascript
复制
{ "Addresses" : 
    "[{ 
        Building=Megatron Skyscraper,
        BuldingId=1998,
        AccountId=2000,
        Number=007,
        Name=Megatron 
        },{
        Building=StarScream Skyscraper,
        BuldingId=1999,
        AccountId=2001,
        Number=008,
        Name=StarScream
}]"}

下面是我的代码:

代码语言:javascript
复制
function getReadyStateHandler(req)
{
    // Return an anonymous function that listens to the
    // XMLHttpRequest instance
    return function ()
    {
        // If the request's status is "complete"
        if (req.readyState == 4)
        {
            // Check that a successful server response was received
            if (req.status == 200)
            {
                msgBox("JSON Response recieved...");
                var addresses = req.responseText.toJSON();
                msgBox(req.responseText.toJSON());
            }
            else
            {
                // An HTTP problem has occurred
                alert("HTTP error: " + req.status);
            }
        }
    }
}

我已经尝试了addresses.Address[0].Cityaddressess.Addresses[0].City和许多其他的工具--但这有点让人困惑!

EN

回答 2

Stack Overflow用户

发布于 2011-05-27 22:06:35

除了您的响应中没有City键之外,您返回的对象只包含一个(格式错误的)字符串,而不是一个对象数组。您可以使用http://jsonlint.com检查这一点

您是如何创建响应的?它应该看起来更像:

代码语言:javascript
复制
{ "Addresses" : [{ 
        "Building":"Megatron Skyscraper",
        "BuldingId":1998,
        "AccountId":2000,
        "Number":7,
        "Name":"Megatron"
        },{
        "Building":"StarScream Skyscraper",
        "BuldingId":1999,
        "AccountId":2001,
        "Number":8,
        "Name":"StarScream"
}]}

更新:那些在"Number":007"Number":008中的前导零可能会导致问题,因为它们将被解释为八进制值。我已经在我的答案中删除了它们。

票数 3
EN

Stack Overflow用户

发布于 2011-05-27 22:08:32

您的响应有效,但地址是字符串而不是数组。如果要将其视为数组,则不应使用引号。如果你愿意的话,你可以修改一下。

address = JSON.parse(addresses.Addresses);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6153295

复制
相关文章

相似问题

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