0

Webmethod 返回一个对象数组 - 像这样

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

在客户端,当使用 msg.d 引用 JSON 时,我得到一个

msg.d is undefined 

错误。我正在使用 jQuery JavaScript 库 v1.4.2

如何访问对象数组中的元素?


添加更多发现、代码和问题:

  1. 我在返回的 JSON 对象中看不到 __type。这是否意味着从服务器发送的对象不是 JSON 格式的?
  2. 当 __type 不是响应的一部分时,我将无法使用 msg.d?(msg.d 未定义)

更多: 1. 我可以使用 msg[0][0].Amount 从客户端访问元素 - 如何专门 JSON 格式化我的返回对象(来自服务器)


对 PageMethods 的代码 调用

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 };
}
4

1 回答 1

0

伙计们,这就是我发现的。因为,我返回的是一个 object[] 而不是一个类的复合对象。我将无法使用 msg.d[0].Amount 进行引用(因为我认为我可以)。我将不得不使用 msg[0][0].Amount - 在某种程度上,它似乎很有意义。

于 2010-04-21T17:13:02.860 回答