将json数组值传递给vb.net

时间:2014-08-07 13:14:28

标签: ajax json vb.net

我有一个json数据数组值名称“datavalue”,并尝试将此值发送到我的webmethod。我尝试搜索,但到目前为止我无法得到任何答案,我搜索的越多,我就越多。或者我的代码可能有问题。

这是我的ajax帖子:

                    $.ajax({
                    url: "WebService.asmx/GetValue",
                    type: "POST",
                    data: datavalue,
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {
                        var data = jQuery.parseJSON(msg);
                        if (!data.error) {
                            alert("Works!");
                        }
                        else {
                            alert("Error" + " " + data.error);
                        }
                    },
                    error: function (msg) {
                        alert('Error: ' + msg);
                    }

我的数据值:(我通过firebug得到这个值

datavalue = country_1=Singapore&city_1=Kathmandu&postal_code_1=sa&country_2=Singapore&city_2=Singapore&postal_code_2=sa&length_1=sa&width_1=sa&height_1=sa&weight_1=sa&length_2=&width_2=&height_2=&weight_2=&contact_name=f&contact_number=f&email=f&address=t&post_code=f&city=Singapore

这是我的网络服务。

<WebMethod()> _
Public Shared Function GetValue(ByVal datavalue As Object) As Object
    Return datavalue
End Function

我是json中的新手,也是webservice中的新手。 提前谢谢你

1 个答案:

答案 0 :(得分:0)

好吧,我有点不确定出了什么问题 - 但我猜你的函数返回值是没有的。

不要使用对象作为函数的参数,而是尝试使用列表。

例如:

<WebMethod()> _
Public Shared Function GetValue(values As List(Of String)) As List(Of String)
    Return datavalue
End Function

同时

尝试在ajax调用中设置traditional: true设置。这将设置传统的param序列化。

 $.ajax({
                url: "WebService.asmx/GetValue",
                type: "POST",
                data: datavalue,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                traditional: true,
                success: function (msg) {
                    var data = jQuery.parseJSON(msg);
                    if (!data.error) {
                        alert("Works!");
                    }
                    else {
                        alert("Error" + " " + data.error);
                    }
                },
                error: function (msg) {
                    alert('Error: ' + msg);
                }