我是来自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]
。有没有办法解决/解决这个问题?