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 を使用しています
オブジェクトの配列の要素にアクセスするにはどうすればよいですか?
さらに調査結果、コード、および質問を追加します。
- 返される JSON オブジェクトに __type が表示されません。サーバーから送信されたオブジェクトが JSON 形式ではないということですか?
- __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 };
}