在不使用任何第三方工具的情况下,提供 JSON 响应数据的理想方式是什么?
我正在考虑让一个 ASPX 应用程序页面只返回 json 字符串响应。有任何想法吗?
在不使用任何第三方工具的情况下,提供 JSON 响应数据的理想方式是什么?
我正在考虑让一个 ASPX 应用程序页面只返回 json 字符串响应。有任何想法吗?
最简单的方法是创建一个带有[WebMethod]
属性的方法,响应会自动被 JSON 序列化。自己试试:
[WebMethod]
public static string GetDateTime()
{
return DateTime.Now.ToString();
}
Ajax 调用 URL 将是:
Page.aspx/GetDateTime
要传递参数,只需将它们添加到函数中:
[WebMethod]
public static int AddNumbers(int n1, int n2)
{
return n1 + n2;
}
我正在使用 jQuery,因此该data:
对象将设置为:
data: "{n1: 1, n2: 2}",
另请注意,返回的 JSON 对象将如下所示:
{"d":[3]}
数据中的额外"d"
内容在此处解释:http: //encosia.com/2009/02/10/a-break-change-between-versions-of-aspnet-ajax/
不是 aspx 页面,但可能是 ashx 处理程序。为了使这更容易,.Net 3.5内置了对 JSON 的序列化支持。
查看 ASP.NET 框架提供的 JavascriptSerializer 类。通常,您会在 WebService 中的 Page Method 或 WebMethod 中使用它来返回序列化为 JSON 的对象。
请参阅此处的 MSDN参考。
我通常使用带有 ScriptService 属性和 ScriptManager 的 Web 服务 (asmx)。与一些 jQuery 插件有一些轻微的不兼容,但并不严重,我不必处理任何手动序列化。