Asp.net Web方法返回JSON

时间:2016-01-18 14:41:55

标签: json

我需要创建一个 WebMethod ,它在JSON上返回我的成员数据库值。我尝试了类似的东西,但实际上失败了。

  [WebMethod(EnableSession = false)]
public static UYELER handleAjaxRequest(string mailX, string passwordX)
{
    DataSet dsX = ReadSql("select top 3 * from fuyeler ");
    for (int i = 0; i < dsX.Tables[0].Rows.Count; i++)
    {
        mailX = dsX.Tables[0].Rows[i]["stMail"].ToString();
        passwordX = dsX.Tables[0].Rows[i]["stPass"].ToString();
    }
    return new UYELER
    {
        mail = mailX,
        password = passwordX,
    };

}

public class UYELER
{
    public int ID { get; set; }
    public string mail { get; set; }
    public string password { get; set; }
}

Readsql是我的快速SQL连接类。

2 个答案:

答案 0 :(得分:0)

方法1:

将其添加到Global.asax页面中的Application_Start

    protected void Application_Start()
    {
        var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
        json.UseDataContractJsonSerializer = true;

        //....
    }

方法2

您还可以使用ResponseFormat set JSON

来装饰您的方法
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod(EnableSession = false)]
public static UYELER handleAjaxRequest(string mailX, string passwordX)
{
    DataSet dsX = ReadSql("select top 3 * from fuyeler ");
    for (int i = 0; i < dsX.Tables[0].Rows.Count; i++)
    {
        mailX = dsX.Tables[0].Rows[i]["stMail"].ToString();
        passwordX = dsX.Tables[0].Rows[i]["stPass"].ToString();
    }
    return new UYELER
    {
        mail = mailX,
        password = passwordX,
    };

}

答案 1 :(得分:0)

您可以通过清除Page_Load中的正常输出并返回自己的输出,从Asp.Net方法返回Json。见this StackOverflow answer ...

要将C#对象转换为JSON,您可以使用Json.NET等库。