JS:在匿名函数

时间:2015-06-15 00:54:30

标签: javascript json xmlhttprequest anonymous-function

我是来自Web服务器的GET JSON,目的是稍后保存JSON字符串。但是JSON是一个对象数组,对象包含许多我不需要的属性,所以我用js清理它们。然后每个对象都是这样的。

{
    "property1":"value1",
    "property2":"value2",
    "idOfExternalResource":"resourceid"
}

这些对象没有我需要的所有属性,我必须使用idOfExternalResource进行另一次服务器调用以获取我需要的属性值,如下所示:

for(var k = 0; k < jsonObjects.length; ++k) {
if (..jsonObjects[k] contains a defined idOfExternalResource..)
{
    var resURL = "/someurl/"+jsonObjects[k].idOfExternalResource;
    var request = new XMLHttpRequest();
    request.open("GET", resUrl, true);
    request.send();

    request.onreadystatechange = function() {
        if (orgRequest.readyState == 4 /*and other checks*/)
        {
            console.log(request.responseText) //logs what it's supposed to
            var externalResObject = JSON.parse(request.responseText); //parses the object fine
            jsonObjects[k].neededProperty = orgNameObject.value; //causes error       
        }
    }
}
}

这给了我这个错误: TypeError: Result of expression 'jsonObjects[k]' [undefined] is not an object.

我认为这样做是因为我无法从匿名函数中访问jsonObjects[k]。有没有办法解决/解决这个问题?

0 个答案:

没有答案