2014年5月3日

DataTable 轉 Json,利用ashx回傳入HTML5 C#

在寫 HTML5 時,因為,需要利用 ashx 回傳 Json 字串,但如果自已寫一個 function 是不是太不方便了?

ASP.NET,其實有一個 Newtonsoft.Json.dll 可以使用,但您的VS 2010、2012也許是沒有這個dll檔案,但我建立可以利用 NuGet 來下載

但NuGet又是如何安裝?我覺得可以參考以下的連結

http://blog.miniasp.com/post/2011/05/17/Useful-Visual-Studio-2010-tool-NuGet-Package-Manager.aspx

安裝完後,可以打開 工具 >> NuGet 套件管理員 >> 套件管理器主控台



打開「主控台」後,會出現下圖:



請在 PM> 後面輸入

Install-Package Newtonsoft.Json

這樣您的 Bin 就會自動加入 Newtonsoft.Json.dll

接下來,就可以利用下面的範例:回傳至 HTML5 Client 端

using System;
using System.Web;

/*Json.NET相關的命名空間,請使用NuGet*/
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

public class GetKS_TOWN : IHttpHandler {
 
    public void ProcessRequest (HttpContext context) {
        DBTools dbtools = new DBTools();
        System.Data.DataTable getLandName = dbtools.GetKS_TOWN();

        //將DataTable轉成JSON字串
        string str_json = JsonConvert.SerializeObject(getLandName, Formatting.Indented);

        context.Response.ContentType = "text/plain";
        context.Response.Write(str_json);
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}

以上,試試看吧!

沒有留言:

張貼留言