用这个:
var JsonString = ....;$.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "YourWebServiceName.asmx/yourmethodname", data: "{'TheData':'" + JsonString + "'}", dataType: "json", success: function (msg) { var data = msg.hasOwnProperty("d") ? msg.d : msg; onSucessCallBack(data); }, error: function (xhr, status, error) { alert(xhr.statusText); }});function onSuccessCallData(DataFromServer) { // your handler for success }然后在服务器端的AppCode文件夹中自动生成的文件背后的代码中,您将编写如下内容:
using System.Web.Services;using System.Web.script.Serialization; [System.Web.script.Services.scriptService] public class YourWebServiceName : System.Web.Services.WebService { [WebMethod] public string yourmethodname(string TheData) { JavascriptSerializer YourSerializer = new JavascriptSerializer(); // custom serializer if you need oneYourSerializer.RegisterConverters(new JavascriptConverter [] { new YourCustomConverter() }); //deserialization TheData.Deserialize(TheData); //serialization TheData.Serialize(TheData); } }如果不使用自定义转换器,则服务器端对象的json字符串和c#类定义之间的属性必须匹配,才能进行反序列化。对于序列化,如果没有自定义转换器,则json字符串将包含c#类的每个属性。您可以
[scriptIgnore]在c#类中的属性定义之前添加,如果不指定自定义转换器,则序列化程序将忽略该属性。



