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

| 我有一个问题,我似乎无法查询返回的JSON,但是我可以打印出整个响应,这是我的JSON响应,只有在执行
msgBox()
提示符时才能看到此信息:
{ \"Addresses\" : 
    \"[{ 
        Building=Megatron Skyscraper,
        BuldingId=1998,
        AccountId=2000,
        Number=007,
        Name=Megatron 
        },{
        Building=StarScream Skyscraper,
        BuldingId=1999,
        AccountId=2001,
        Number=008,
        Name=StarScream
}]\"}
这是我的代码:
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].City
addressess.Addresses[0].City
以及其他许多东西,但这有点令人困惑!     
已邀请:
        除了响应中没有“ 5”键的事实外,返回的对象仅包含一个(格式错误)字符串,而不包含对象数组。您可以使用http://jsonlint.com进行检查 您是如何创建响应的?它看起来应该更像:
{ \"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
中的前导零可能会引起问题,因为它们将被解释为八进制值。我已将其删除。     
        您的响应有效,但“地址”是一个字符串而不是一个数组。如果将引号视为数组,则不应将引号引起来。如果您愿意,可以做一点修改
address = JSON.parse(addresses.Addresses);
    

要回复问题请先登录注册