我有一个WCF RESTful服务,它返回一个具有以下格式的复杂对象:
{"GetMatterSearchRESTResult":{"BreakDownBypracticeGroups":[],"BreakDownByCountry":[],"TotalMatterCount":0}}.
当我返回此值时,我尝试使用以下代码访问它:
if(executor.get_responseAvailable){ var serviceResults = executor.get_responseData();
var prasevalues = eval('(' + serviceResults + ')');
var mattersResults = prasevalues.GetMatterSearchRESTResult;
for (var a = 0; a < mattersResults.length; a++) {
alert(mattersResults[a].TotalMatterCount);
var pgBreakDown = mattersResults[a].BreakDownBypracticeGroups;
for (var b = 0; b < pgBreakDown.length; b++) {
alert(pgBreakDown[b].DepartmentName + " " + pgBreakDown[b].Count);
}
}
}
return false;
调用eval函数后,我得到一个未定义的值。请帮忙。
答案 0 :(得分:0)
GetMatterSearchRESTResult不是数组,它是一个对象,因此matterResults将没有长度方法。使GetMatterSearchRESTResult成为一个对象数组:
{"GetMatterSearchRESTResult":[{"BreakDownBypracticeGroups":[],"BreakDownByCountry":[],"TotalMatterCount":0}]}
编辑:或者,如果不可能,则不需要遍历对象