JSON - msg.d - неопределенная ошибка - PullRequest
0 голосов
/ 21 апреля 2010

Webmethod возвращает массив объектов - что-то вроде этого

{"d":
[[{"Amount":100,"Name":"StackOverflow"},
{"Amount":200,"Name":"Badges"},
{"Amount":300,"Name":"Questions"}]]}

На стороне клиента, когда на JSON ссылаются с помощью msg.d, я получаю

msg.d is undefined 

ошибка. Я использую jQuery JavaScript Library v1.4.2

Как получить доступ к элементам в массиве объектов?


Добавление дополнительных выводов, кода и вопросов:

  1. Я не вижу __type в возвращаемом объекте JSON. Означает ли это, что объект, отправленный с сервера, не отформатирован в формате JSON?
  2. Когда __type не является частью ответа, я не смогу использовать msg.d? (msg.d не определено)

Еще немного: 1. Я могу получить доступ к элементам со стороны клиента, используя msg [0] [0] .Amount - Как конкретно отформатировать JSON мой возвращаемый объект (с сервера)


код Звоните на методы Page

PageMethods.BuildParticipantAsync($get('<%=hdn_AjaxControls.ClientID %>').value, fOnSuccess, fOnFailure);

function onSuccess(msg)
{
alert(msg.d); //This is undefined
}

Web Method
public static object[] BuildParticipantAsync(string lstSAjaxControls)
{
...//do stuff
 return new object[] { ArrayOfObject };
}

1 Ответ

0 голосов
/ 21 апреля 2010

Ребята, вот что я нашел. Потому что я возвращаю объект [], а не составной объект класса. Я не смогу ссылаться с помощью msg.d [0] .Amount (как я и думал). Мне придется использовать msg [0] [0] .Amount - В некотором смысле, это, кажется, имеет большой смысл.

...