您好,登錄后才能下訂單哦!
今天小編給大家分享一下C#中怎么把DataTable、Dataset轉Json數據的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
JSON是JavaScript Object Notation的簡稱,中文含義為“JavaScript 對象表示法”,它是一種數據交換的文本格式,而不是一種編程語言。
JSON 是一種輕量級的數據交換格式,它基于 ECMAScript (w3c制定的js規范)的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。
JSON 主要具有以下特性,這些特性使它成為理想的數據交換語言:
JSON 是輕量級的文本數據交換格式
JSON 具有自我描述性,更易理解
JSON 采用完全獨立于語言的文本格式:JSON 使用 JavaScript 語法來描述數據對象,但是 JSON 仍然獨立于語言和平臺。JSON 解析器和 JSON 庫支持許多不同的編程語言。 目前常見的動態編程語言(PHP,JSP,.NET)都支持JSON。
JSON 是存儲和交換文本信息的一種語法,它與XML具有相同的特性,是一種數據存儲格式,卻比 XML 更小、更快、 更易于人編寫和閱讀、更易于生成和解析。
類似于 XML 的特性:
JSON 是純文本
JSON 具有“自我描述性”(人類可讀)
JSON 具有層級結構(值中存在值)
JSON 可通過 JavaScript 進行解析
JSON 數據可使用 AJAX 進行傳輸
相比 XML 的不同之處:
沒有結束標簽
更短
讀寫的速度更快
能夠使用內建的 JavaScript eval() 方法進行解析
使用數組
不使用保留字
public static string DataTableToJson1(string jsonName, DataTable dt) { StringBuilder Json = new StringBuilder(); Json.Append("{\"" + jsonName + "\":["); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { Json.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":\"" + dt.Rows[i][j].ToString() + "\""); if (j < dt.Columns.Count - 1) { Json.Append(","); } } Json.Append("}"); if (i < dt.Rows.Count - 1) { Json.Append(","); } } } Json.Append("]}"); return Json.ToString(); }
public static string Dataset2Json(DataSet ds) { StringBuilder json = new StringBuilder(); foreach (DataTable dt in ds.Tables) { json.Append("{\""); json.Append(dt.TableName); json.Append("\":"); json.Append(DataTable2Json(dt)); json.Append("}"); } return json.ToString(); }
public static string DataTableToJson2(DataTable dt) { StringBuilder Json = new StringBuilder(); Json.Append("{\"" + dt.TableName + "\":["); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { Json.Append("\r\n" + "{\"device\":" + "\r\n" + "{"); for (int j = 0; j < dt.Columns.Count; j++) { string columName = dt.Columns[j].ColumnName.ToString(); string columValue = dt.Rows[i][j].ToString(); if (j == 9)//"radios":{"wifiMAC":~~}, Json.Append("\"radios\":{\"" + columName + "\":\"" + columValue + "\"}"); else if (j == 10 || j == 11)//"partDetails":{"mainLogicBoardSerialNumber":~~, "batterySerialNumber":~~ } { if (j == 10) Json.Append("\"partDetails\":{\"" + columName + "\":\"" + columValue + "\""); else Json.Append("\"" + columName + "\":\"" + columValue + "\"}}"); } else if (j == 12) Json.Append("\"order\":{\"" + columName + "\":\"" + columValue + "\""); else if (j == 16) Json.Append("\"" + columName + "\":\"" + columValue + "\"}"); else Json.Append("\"" + columName + "\":\"" + columValue + "\""); if (j < dt.Columns.Count - 1 ) Json.Append(","); } Json.Append("}"); if (i < dt.Rows.Count - 1) { Json.Append(","); } } } Json.Append("\r\n" + "]}"); return Json.ToString(); }
以上就是“C#中怎么把DataTable、Dataset轉Json數據”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。