在ASP.NET WEB应用程序中使用的一个JsonHelper

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Web;
  5 using System.Web.Script.Serialization;
  6 using System.Data;
  7 using System.Text;
  8 
  9 namespace JQuery
 10 {
 11     public class JsonHelper
 12     {
 13         #region 返回一个Json类型
 14         /// <summary>
 15         /// 返回一个Json字符串
 16         /// </summary>
 17         /// <param name="obj">传入泛型集合</param>
 18         /// <returns></returns>
 19         public static string ObjectToJson(object obj)
 20         {
 21             JavaScriptSerializer jss = new JavaScriptSerializer();
 22             return jss.Serialize(obj);
 23         }
 24 
 25         /// <summary>
 26         /// 返回一个List泛型集合
 27         /// </summary>
 28         /// <param name="dt">传入一个DataTable</param>
 29         /// <returns></returns>
 30         public static List<Dictionary<string, object>> DataTableToList(DataTable dt)
 31         {
 32             List<Dictionary<string, object>> listDic = new List<Dictionary<string, object>>();
 33             foreach (DataRow dr in dt.Rows)
 34             {
 35                 Dictionary<string, object> dic = new Dictionary<string, object>();
 36                 foreach (DataColumn dc in dt.Columns)
 37                 {
 38                     dic.Add(dc.ColumnName, dr[dc.ColumnName]);
 39                 }
 40                 listDic.Add(dic);
 41             }
 42             return listDic;
 43         }
 44 
 45         public static string DataTableToJson(DataTable dt)
 46         {
 47             return ObjectToJson(DataTableToList(dt));
 48         }
 49         #endregion
 50 
 51         #region 返回带名字的Jsoin
 52         /// <summary>
 53         /// 
 54         /// </summary>
 55         /// <param name="name"></param>
 56         /// <param name="dt"></param>
 57         /// <returns></returns>
 58         public static string DataTableToJsonp(string name, DataTable dt)
 59         {
 60             string JsonName = name;
 61             StringBuilder Json = new StringBuilder("{\"" + JsonName + "\":[");
 62             if (dt.Rows.Count > 0)
 63             {
 64                 foreach (DataRow row in dt.Rows)
 65                 {
 66                     Json.Append("{");
 67                     foreach (DataColumn column in dt.Columns)
 68                     {
 69                         Json.Append("\"" + column.ColumnName + "\":\"" + row[column.ColumnName].ToString() + "\",");
 70                     }
 71                     Json.Remove(Json.Length - 1, 1);
 72                     Json.Append("},");
 73                 }
 74                 Json.Remove(Json.Length - 1, 1);
 75             }
 76             Json.Append("]}");
 77 
 78             return Json.ToString();
 79         }
 80 
 81         #endregion
 82 
 83         /// <summary>
 84         /// 传人一张表 然后转换为json格式数据
 85         /// json格式例:{table:[{'id':'soo1','name':'cys','age':'21'},{'id':'soo2','name':'cys','age':'21'},{'id':'soo3','name':'cys','age':'21'}]}
 86         /// </summary>
 87         /// <param name="table"></param>
 88         /// <returns>返回json格式数据</returns>
 89         public static string TableToJson(DataTable table)
 90         {
 91             StringBuilder output = new StringBuilder();
 92             if (table.Rows.Count > 0)//判断是否有数据
 93             {
 94                 output.Append("{table:[");
 95                 //循环table拼接json数据
 96               for (int i = 0; i < table.Rows.Count; i++)
 97               {     
 98                 output.Append("{");
 99                    for (int j = 0; j < table.Columns.Count; j++)
100                     {    
101                        output.Append("'"+table.Columns[j].ColumnName+"':'"+table.Rows[i][j]+"',");
102                     }
103                   //移除最后一个,
104                    output.Remove(output.Length-1,output.Length);
105                    output.Append("},");
106                 }                
107               //移除最后一个,
108               output.Remove(output.Length - 1, output.Length);
109               output.Append("]}");
110             }
111             else
112             {
113                 return "";
114             }
115             return output.ToString();//返回json格式数据
116         }
117 
118 
119         /// <summary>
120         /// 把一个表转化成字符串
121         /// </summary>
122         /// <param name="table">要转换的表</param>
123         /// <param name="haveHend">是否保存数据库的表头 true:保存 false:不保存</param>
124         /// <returns>返回一个html表的字符串</returns>
125         public static string TableToTableStr(DataTable table,bool haveHend)
126         {            
127             if (table.Rows.Count > 0)
128             {
129                 StringBuilder output = new StringBuilder();               
130                 output.Append("<table border='1'>");
131                 if (haveHend)
132                 { //构建表头
133                     foreach (DataColumn item in table.Columns)
134                     {
135                         output.Append("<th>" + item.ColumnName + "</th>");
136                     }
137                 }                
138                 //产生表体
139                 foreach (DataRow row in table.Rows)
140                 {
141                     output.Append("<tr>");
142                     foreach (DataColumn clo in table.Columns)
143                     {
144                         output.Append("<td>"+row[clo.ColumnName].ToString()+"</td>");
145                     }
146                     output.Append("</tr>");
147                 }
148                 output.Append("</table>");
149                 return output.ToString();
150             }
151             else
152             {
153                 return "no data!!";
154             }
155            
156         }
157     }
158 }

 

posted on 2012-07-10 19:36  风火网络科技  阅读(189)  评论(0)    收藏  举报

导航