如何将对象列表传递给ASP.NET WebService?

时间:2014-01-27 01:49:14

标签: javascript asp.net json web-services

我有一个JavaScript中的对象列表,我需要传递给ASP.NET WebService。

目前我将ScriptManager包含在我的页面中:

        <asp:ScriptManager runat="server">
            <Services>
                <asp:ServiceReference Path="/ws_data.asmx" />
            </Services>
        </asp:ScriptManager>

声明WebMethod:

[WebMethod(true)]
public object SaveData(my_package.MyObject[] objects)
{
    //  ...
}

从JavaScript调用该方法:

    var parameters = '['+
            + '{"PlayerId":11, "Pos":12, "Flang":13"},'
            + '{"PlayerId":21, "Pos":22, "Flang":23"}'
            + ']';
    ws_data.SaveData(parameters, OnComplete, OnError, OnTimeOut);

当调用方法时,调用接收者'OnError'并显示错误消息:

Cannot convert object of type 'System.String' to type 'my_package.MyObject[]'

我的代码有什么问题?

我对使用过的技术(JSON,Web服务,JavaScript)都没有太多的经验,并且在不同的假设中丢失了。

请指教,欢迎任何帮助!

P.S。更改格式以匹配JSON规范(由codenoire建议):

var parameters = [
    {"PlayerId":11, "Pos":12,"Flang":13},
    {"PlayerId":21, "Pos":22,"Flang":23 }
    ];

当只传递了一个对象时,这有助于实现可行的简化案例,但传递数组仍会产生相同的错误。

1 个答案:

答案 0 :(得分:1)

试试这个:

var parameters = [{"PlayerId":11, "Pos":12,"Flang":13}, {"PlayerId":21, "Pos":22,"Flang":23 }];