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 }