【IT168技术文档】
随着AJAX,MVC等WEB框架的使用,JavaScript又更多的回到了我们身边。
在JS中我们需要对对象进行JSON序列化通常使用JSON.net, 不过它对DataTable的序列化不能很好的满足的我们的需求,后来在CodeProject发现一个兄弟已经写好了 Convert ASP.NET DataTable to JSON, to use datatable in JAVASCRIPT ,记一下,免得忘记了。
1public string CreateJsonParameters(DataTable dt) 2 { 3 /**//* /**************************************************************************** 4 * Without goingin to the depth of the functioning of this Method, i will try to give an overview 5 * As soon as this method gets a DataTable it starts to convert it into JSON String, 6 * it takes each row and in each row it grabs the cell name and its data. 7 * This kind of JSON is very usefull when developer have to have Column name of the . 8 * Values Can be Access on clien in this way. OBJ.HEAD[0].<ColumnName> 9 * NOTE: One negative point. by this method user will not be able to call any cell by its index. 10 * *************************************************************************/ 11 StringBuilder JsonString = new StringBuilder(); 12 //Exception Handling 13 if (dt != null && dt.Rows.Count > 0) 14 { 15 JsonString.Append("{ "); 16 JsonString.Append("\"Head\":[ "); 17 for (int i = 0; i < dt.Rows.Count; i++) 18 { 19 JsonString.Append("{ "); 20 for (int j = 0; j < dt.Columns.Count; j++) 21 { 22 if (j < dt.Columns.Count - 1) 23 { 24 JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\","); 25 } 26 else if (j == dt.Columns.Count - 1) 27 { 28 JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\""); 29 } 30 } 31 /**//*end Of String*/ 32 if (i == dt.Rows.Count - 1) 33 { 34 JsonString.Append("} "); 35 } 36 else 37 { 38 JsonString.Append("}, "); 39 } 40 } 41 JsonString.Append("]}"); 42 return JsonString.ToString(); 43 } 44 else 45 { 46 return null; 47 } 48 }