Mid*_*hat 5 javascript asp.net json .net-3.5 .net-2.0
我有一些javascript代码,用于处理使用framework 2.0构建的asp.net Web服务的json输出.现在我需要支持从框架3.5 Web服务返回的数据.
我的javascript代码假设一个对象列表作为返回值,在2.0中工作正常.但是在框架3.5中,列表包含在"d"对象中.有什么办法可以删除"d"包装并返回列表吗?
我宁愿在服务器端解决这个问题
您不能配置3.5+服务不返回.d.它也很好,因为它可以防止当外部JSON实体是一个数组时存在的棘手的JSON劫持场景.
ASP.NET AJAX的客户端代理会自动隐藏.d您.如果它妨碍了你,我假设你正在使用类似jQuery的东西来调用服务? 例如,您可以.d使用其DataFilter回调来规范化jQuery.
这是一种解决方法
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public void Status()
{
MyObject myObject = new MyObject(); // your object here
var json = Newtonsoft.Json.JsonConvert.SerializeObject(myObject);
HttpContext.Current.Response.Write(json);
}
Run Code Online (Sandbox Code Playgroud)