0

我正在学习使用 jquery ajax 来处理 JSON ..我编写了一个演示代码。HTML代码

$(function () {
            $("#add").click(function () {
                var json = '{ "str":[{"Role_ID":"2","Customer_ID":"155","Brands":"Chloe;","Country_ID":"96;"}]}';
                $.ajax({

                    url: "func.aspx/GetJson",
                    type: "POST",
                    contentType: "application/json",
                    dataType: 'json',
                    data: json, 

                    success: function (result) {
                        alert(result);
                    },
                    error: function () {
                        alert("error");
                    }
                });
            });
        });

 <div>
       <input type="button" value="add" id="add" />
    </div>

我得到了一个输入并将一个脚本函数绑定到它,现在问题来了..我的 C# 函数就是这样。

[WebMethod]
        public static string GetJson(object str)
        {
            return str.ToString();//good for work


        }
        [Serializable]
        public class TestClass
        {
            public TestClass()
            {
            }

            public TestClass(string role_id, string customer_id, string brands, string countryid)
            {
                this.Role_ID = role_id;
                this.Customer_ID = customer_id;
                this.Brands = brands;
                this.Country_ID = countryid;
            }

            public string Role_ID { get; set; }
            public string Customer_ID { get; set; }
            public string Brands { get; set; }
            public string Country_ID { get; set; }
        }

当我使用公共静态字符串 GetJson(object str) 时,一切都很好。~~ 没有错误,但是。当我尝试使用我自己的类TestClass。萤火虫告诉我“类型'TestClass'不支持数组的反序列化。” .任何机构都可以给我帮助:XD

4

1 回答 1

0

这就是我使用 WCF Web 服务执行此操作时的外观。希望它可以帮助你。如果您需要任何进一步的说明,请告诉我。

脚本:

var data = {
        emailAddress: emailAddress,
        firstName: firstName,
        lastName: lastName,
        groups: groups
    };

    $.ajax({
        type: "POST",
        url: Client.svc/Subscribe",
        data: JSON.stringify(data),
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        processdata: true,
        success: function (result) {
            //do something
        }
    });

服务:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[BasicHttpBindingServiceMetadataExchangeEndpoint]
public class Client : IClient
{
    public bool Subscribe(string emailAddress, string firstName, string lastName, string[] groups)
    {
        //do something
        return true;
    }
}
于 2013-11-05T15:50:23.327 回答