你如何在.NET中提供JSON响应数据?

时间:2009-05-07 15:58:04

标签: .net ajax json response.write

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

我正在考虑使用ASPX应用程序页面来返回json字符串响应。有什么想法吗?

4 个答案:

答案 0 :(得分: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-breaking-change-between-versions-of-aspnet-ajax/

答案 1 :(得分:8)

不是aspx页面,但可能是ashx处理程序。为了简化这一过程,.Net 3.5内置了serialization support for JSON

答案 2 :(得分:2)

查看ASP.NET框架提供的JavascriptSerializer类。通常,您可以在Web方法中使用此方法或在WebService中使用WebMethod来返回序列化为JSON的对象。

请参阅MSDN here上的参考资料。

答案 3 :(得分:0)

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