栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从ASMX Web服务返回JSON,而没有XML包装器?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从ASMX Web服务返回JSON,而没有XML包装器?

用这个:

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#类中的属性定义之前添加,如果不指定自定义转换器,则序列化程序将忽略该属性。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/452510.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号