7

在不使用任何第三方工具的情况下,提供 JSON 响应数据的理想方式是什么?

我正在考虑让一个 ASPX 应用程序页面只返回 json 字符串响应。有任何想法吗?

4

4 回答 4

10

最简单的方法是创建一个带有[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/

于 2009-05-07T16:03:37.873 回答
8

不是 aspx 页面,但可能是 ashx 处理程序。为了使这更容易,.Net 3.5内置了对 JSON 的序列化支持。

于 2009-05-07T16:03:16.813 回答
2

查看 ASP.NET 框架提供的 JavascriptSerializer 类。通常,您会在 WebService 中的 Page Method 或 WebMethod 中使用它来返回序列化为 JSON 的对象。

请参阅此处的 MSDN参考。

于 2009-05-07T16:06:20.677 回答
0

我通常使用带有 ScriptService 属性和 ScriptManager 的 Web 服务 (asmx)。与一些 jQuery 插件有一些轻微的不兼容,但并不严重,我不必处理任何手动序列化。

于 2009-05-07T16:02:47.517 回答