JsonHelper
在网上找的比较全的json应用的类库。包含:DataTable转换Json,List 转换 Json,Model 转换 Json。下面说下Json的优势。
JSON的优点: 
1、基于纯文本,跨平台传递极其简单;
2、Javascript原生支持,后台语言几乎全部支持;
3、轻量级数据格式,占用字符数量极少,特别适合互联网传递;
4、可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的;
5、容易编写和解析,当然前提是你要知道数据结构;
下面直接贴代码:
[code lang="CSharp"]
public class JsonHandler
 { /// <summary>
 /// DataTable转成Json
 /// </summary>
 /// <param name="jsonName">Json名</param>
 /// <param name="dt">table数据</param>
 /// <returns></returns>
 public static string DataTableToJson(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();
 }
 /// <summary>
 /// DataTable转成Json
 /// </summary>
 /// <param name="dt">table数据</param>
 {
 /// <returns></returns>
 public static string DataTableToJson(DataTable dt)
 StringBuilder Json = new StringBuilder();
 Json.Append("[");
 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();
 }
 /// <summary>
 /// List转成json
 /// </summary>
 /// <typeparam name="T">数据类型</typeparam>
 /// <param name="jsonName">Json名</param>
 /// <param name="IL">数列</param>
 /// <returns></returns>
 public static string ObjectToJson<T>(string jsonName, IList<T> IL)
 {
 StringBuilder Json = new StringBuilder();
 Json.Append("{\"" + jsonName + "\":[");
 if (IL.Count > 0)
 {
 for (int i = 0; i < IL.Count; i++)
 {
 T obj = Activator.CreateInstance<T>();
 Type type = obj.GetType();
 PropertyInfo[] pis = type.GetProperties();
 Json.Append("{");
 for (int j = 0; j < pis.Length; j++)
 {
 Json.Append("\"" + pis[j].Name.ToString() + "\":\"" + pis[j].GetValue(IL[i], null) + "\"");
 if (j < pis.Length - 1)
 {
 Json.Append(",");
 }
 }
 Json.Append("}");
 if (i < IL.Count - 1)
 {
 Json.Append(",");
 }
 }
 }
 Json.Append("]}");
 return Json.ToString();
 }
 /// <summary>
 /// List转成json
 /// </summary>
 /// <typeparam name="T">数据类型</typeparam>
 /// <param name="IL">数列</param>
 /// <returns></returns>
 public static string ObjectToJson<T>(IList<T> IL)
 {
 StringBuilder Json = new StringBuilder();
 Json.Append("[");
 if (IL.Count > 0)
 {
 for (int i = 0; i < IL.Count; i++)
 {
 T obj = Activator.CreateInstance<T>();
 Type type = obj.GetType();
 PropertyInfo[] pis = type.GetProperties();
 Json.Append("{");
 for (int j = 0; j < pis.Length; j++)
 {
 Json.Append("\"" + pis[j].Name.ToString() + "\":\"" + pis[j].GetValue(IL[i], null) + "\"");
 if (j < pis.Length - 1)
 {
 Json.Append(",");
 }
 }
 Json.Append("}");
 if (i < IL.Count - 1)
 {
 Json.Append(",");
 }
 }
 }
 Json.Append("]");
 return Json.ToString();
 }
 /// <summary>
 /// Model 转换为Json
 /// </summary>
 /// <typeparam name="T">数据类型</typeparam>
 /// <param name="obj">数据对象</param>
 /// <returns></returns>
 public static string ObjectToJson<T>(T o)
 {
 StringBuilder Json = new StringBuilder();
 T obj = Activator.CreateInstance<T>();
 Type type = obj.GetType();
 PropertyInfo[] Pi = type.GetProperties();
 Json.Append("{");
 for (int i = 0; i < Pi.Length; i++)
 {
 Json.Append("\"" + Pi[i].Name.ToString() + "\":\"" + Pi[i].GetValue(o, null) + "\"");
 if (i < Pi.Length - 1)
 {
 Json.Append(",");
 }
 }
 Json.Append("}");
 return Json.ToString();
 }
 }
[/code]
    写个博客不容易,请转载的时候备注下原文出处,谢谢
作者:keepnode
博客地址:http://www.cnblogs.com/woaic
每件事到最后都是好事,如果不是好事,说明还没有到最后
=========================
作者:keepnode
博客地址:http://www.cnblogs.com/woaic
每件事到最后都是好事,如果不是好事,说明还没有到最后
=========================
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号