После возвращения данных JSON я не могу получить к ним доступ, используя код JavaScript - PullRequest
0 голосов
/ 10 февраля 2010

У меня есть служба 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 голосов
/ 10 февраля 2010

GetMatterSearchRESTResult - это не массив, а объект, поэтому у метода44 нет метода длины Сделайте GetMatterSearchRESTResult массивом объектов:

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

Редактировать: Или, если это невозможно, вам не нужно перебирать объект

...