九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
.NET中把DataTable轉(zhuǎn)換成JSON的總結(jié)

最近在做公司的一個project,其中有一部分,要求瀏覽器端通過jquery ajax調(diào)用服務(wù)器端返回json格式的多條數(shù)據(jù)。網(wǎng)上搜索了一下,找到下面兩個方法在.NET中生成json。

方法一:.NET Framework 3.0及更早的版本:

public static string GetJSONString(DataTable Dt){    string[] StrDc = new string[Dt.Columns.Count];    string HeadStr = string.Empty;    for (int i = 0; i < Dt.Columns.Count; i++)    {        StrDc[i] = Dt.Columns[i].Caption;        HeadStr += "\"" + StrDc[i] + "\" : \"" + StrDc[i] + i.ToString() + "?" + "\",";    }    HeadStr = HeadStr.Substring(0, HeadStr.Length - 1);    StringBuilder Sb = new StringBuilder();    Sb.Append("{\"" + Dt.TableName + "\" : [");    for (int i = 0; i < Dt.Rows.Count; i++)    {        string TempStr = HeadStr;        Sb.Append("{");        for (int j = 0; j < Dt.Columns.Count; j++)        {            TempStr = TempStr.Replace(Dt.Columns[j] + j.ToString() + "?", Dt.Rows[i][j].ToString());        }        Sb.Append(TempStr + "},");    }    Sb = new StringBuilder(Sb.ToString().Substring(0, Sb.ToString().Length - 1));    Sb.Append("]}");    return Sb.ToString();}

方法二:.NET 3.5及以上版本:

public static string GetJSONString(DataTable dt){    List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();    foreach (DataRow dr in dt.Rows)    {        Dictionary<string, object> row = new Dictionary<string, object>();        foreach (DataColumn dc in dt.Columns)        {            row.Add(dc.ColumnName, dr[dc]);        }        rows.Add(row);    }    System.Web.Script.Serialization.JavaScriptSerializer ser = new System.Web.Script.Serialization.JavaScriptSerializer();    return ser.Serialize(rows);}

方法一其實適用于所有的.NET版本,手動生成json字符串。方法二調(diào)用了.NET3.5新加入的JavaScriptSerializer類的Serialize來轉(zhuǎn)換輸出json字符串。因為datatable是.net的數(shù)據(jù)格式,里面除了數(shù)據(jù)之外,還包含有其它很多信息(比如tablename,primarykey,constraints等),所以需要將它轉(zhuǎn)換成dictionary之后,才可以轉(zhuǎn)換。如果DataTable里面含有datetime這樣格式的數(shù)據(jù),那么輸出的json字符串會是"\/Date(刻度數(shù))\/"??潭葦?shù)是一個正的或負(fù)的長值,該值指示從 UTC 1970 年 1 月 1 日午夜開始已經(jīng)過的刻度數(shù)(毫秒)。在Javascript中,可以調(diào)用下面的函數(shù)來解析這個json值:

function ParseJSONDate (value) {    var a;    if (typeof value === 'string') {        a = /\/Date\((\d*)\)\//.exec(value);        if (a) {            return new Date(+a[1]);        }    }    return value;}

或者

function ParseJSONDate (value){    return new Date(parseInt(value.substr(6)));}

 有一點需要注意的是,websevice是會根據(jù)請求,自動將結(jié)果轉(zhuǎn)換成json格式的數(shù)據(jù),所以沒有必要再手動的去序列化json數(shù)據(jù)。

 

參考地址:

http://weblogs.asp.net/navaidakhtar/converting-data-table-dataset-into-json-string

http://www.telerik.com/forums/consuming-a-net-json-web-service

http://encosia.com/asp-net-web-services-mistake-manual-json-serialization/

http://encosia.com/a-breaking-change-between-versions-of-aspnet-ajax/

http://encosia.com/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
DataTable轉(zhuǎn)換成JSON格式數(shù)據(jù)
asp.net Directory生成文件夾
DataTable 轉(zhuǎn)換成 Json的3種方法
將查詢出來的數(shù)據(jù)集轉(zhuǎn)化成JSON格式的類
深入.NET DataTable
xml與datatable互轉(zhuǎn)類
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服