返回JSON数据后,我无法使用javascript代码访问它

时间:2010-02-10 18:29:02

标签: rest

我有一个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函数后,我得到一个未定义的值。请帮忙。

1 个答案:

答案 0 :(得分:0)

GetMatterSearchRESTResult不是数组,它是一个对象,因此matterResults将没有长度方法。使GetMatterSearchRESTResult成为一个对象数组:

{"GetMatterSearchRESTResult":[{"BreakDownBypracticeGroups":[],"BreakDownByCountry":[],"TotalMatterCount":0}]}

编辑:或者,如果不可能,则不需要遍历对象