asp.net – 使用[WebMethod]转义的JSON响应
发布时间:2020-12-16 00:04:26 所属栏目:asp.Net 来源:网络整理
导读:来自以下代码的JSON响应被错误地转义,如下所述. 我的网络方法是这样的: [WebMethod (Description="doc here")] [ScriptMethod(ResponseFormat=ResponseFormat.Json)] public string responseMyObject() { if (!Setup()) return ""; ... Proxy pu = new Prox
来自以下代码的JSON响应被错误地转义,如下所述.
我的网络方法是这样的: [WebMethod (Description="doc here")] [ScriptMethod(ResponseFormat=ResponseFormat.Json)] public string responseMyObject() { if (!Setup()) return ""; ... Proxy pu = new Proxy(...); ... string toReturn = JavaScriptConvert.SerializeObject(pu.getMyObject()); Console.WriteLine(toReturn); return toReturn; } 从控制台我得到: {"field1":vaule1,"field2":value2} 来自JS: $.ajax({ type: "POST",url: "/myapi/myClass.asmx/responseMyObject",data: "{}",contentType: "application/json; charset=utf-8",dataType: "json",success: function(msg) { var object = msg.d; alert(object.field1); } }); 问题是在HTTP响应头中我可以看到JSON响应以下列方式被错误地(?)转义: {"d":"{"field1":value1,"field2":value2}"} 奇怪的是控制台打印很好(但还没有封装在{d:…}中 {"field1":value1,"field2":value2} 使用类似的代码,如果我调用返回基本类型(无对象)的[WebMethod],JSON响应就可以了.喜欢: { “d”:8080} 解决方法[WebService] [ScriptService] public class MyWebService : WebService { [WebMethod (Description="doc here")] [ScriptMethod( UseHttpGet=false,ResponseFormat=ResponseFormat.Json)] public MyObjectType responseMyObject() { Proxy pu = new Proxy(...); return pu.GetMyObject(); } } 您不需要JSON序列化程序,使用ScriptService属性对其进行标记可以使其具有序列化JSON的能力.你正在序列化JSON,然后再次序列化:( (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net – HttpWebRequest正在为404抛出异常
- asp.net – 锚标记href中的eval
- asp.net-mvc – ValidateInput(false)和AllowHtm
- asp.net-mvc – 我的模型应该在哪里生活? Web层
- 用于属性的ASP.NET MVC编辑器模板
- asp.net-web-api – 在Windows服务中使用OWIN托管
- asp.net-mvc – 将布尔属性编辑器转换为MVC视图中
- ASP.NET – ERR_EMPTY_RESPONSE /重置连接/无法显
- asp.net-mvc-4 – 在常规MVC项目中使用breeze而不
- asp.net-mvc – 如何将OpenId与ASP.Net成员集成在
热点阅读