JSON - msg.d是未定义的错误

时间:2010-04-21 13:14:51

标签: jquery serialization webmethod

Webmethod返回一个对象数组 - 类似这样的

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

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

msg.d is undefined 

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

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


添加更多调查结果,代码和问题:

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

  3. 更多: 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 };
    }
    

1 个答案:

答案 0 :(得分:0)

伙计们,这就是我找到的。因为,我返回一个object []而不是一个类的复合对象。我将无法使用msg.d [0] .Amount(我认为我能够)引用。我将不得不使用msg [0] [0] .Amount - 在某种程度上,它看起来确实很有意义。