A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. #region  DataTable 转换为Json字符串实例方法
  2. /// <summary>
  3. /// GetClassTypeJosn 的摘要说明
  4. /// </summary>
  5. public class GetClassTypeJosn : IHttpHandler
  6. {
  7.     /// <summary>
  8.     /// 文件名:DataTable 和Json 字符串互转
  9.     /// 版权所有:Copyright (C) Create Family Wealth liangjw
  10.     /// 创建标示:2013-08-03
  11.     /// </summary>
  12.     //用法说明实例
  13.      public void ProcessRequest(HttpContext context)
  14.     {
  15.         context.Response.ContentType = "application/json";
  16.         context.Response.Charset = "utf-8";
  17.         HttpRequest req = context.Request;
  18.         string method = req["method"].ToStr().ToLower();


  19.        //获取合同明细列表  DataTable 转换为Json字符串
  20.         if (method == "txtdate")
  21.         {
  22.             string json = "";
  23.             BO.MakeContractMx bll = new MakeContractMx();
  24.             DataSet ds = bll.GetDataTable();
  25.             if (ds.Tables.Count > 0)
  26.             {
  27.                 json =ToJson(ds.Tables[0]);
  28.             }
  29.             context.Response.Write(json);
  30.             return;
  31.         }

  32.     }

  33.    public bool IsReusable
  34.     {
  35.         get
  36.         {
  37.             return false;
  38.         }
  39.     }
  40. }

  41.    #endregion

  42.     #region Json字符串转换为DataTable 实例方法

  43.     public DataTable JsonToDataTable(json)
  44.     {
  45.        DataTable  dt= ToDataTable(json);
  46.          return dt;
  47.     }
  48.      
  49.    #endregion

  50.     #region DataTable 转换为Json 字符串
  51.     /// <summary>
  52.     /// DataTable 对象 转换为Json 字符串
  53.     /// </summary>
  54.     /// <param name="dt"></param>
  55.     /// <returns></returns>
  56.     public static string ToJson(this DataTable dt)
  57.     {
  58.         JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
  59.         javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
  60.         ArrayList arrayList = new ArrayList();
  61.         foreach (DataRow dataRow in dt.Rows)
  62.         {
  63.             Dictionary<string, object> dictionary = new Dictionary<string, object>();  //实例化一个参数集合
  64.             foreach (DataColumn dataColumn in dt.Columns)
  65.             {
  66.                 dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToStr());
  67.             }
  68.             arrayList.Add(dictionary); //ArrayList集合中添加键值
  69.         }

  70.         return javaScriptSerializer.Serialize(arrayList);  //返回一个json字符串
  71.     }
  72.     #endregion

  73.     #region Json 字符串 转换为 DataTable数据集合
  74.     /// <summary>
  75.     /// Json 字符串 转换为 DataTable数据集合
  76.     /// </summary>
  77.     /// <param name="json"></param>
  78.     /// <returns></returns>
  79.     public static DataTable ToDataTable(this string json)
  80.     {
  81.         DataTable dataTable = new DataTable();  //实例化
  82.         DataTable result;
  83.         try
  84.         {
  85.             JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
  86.             javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
  87.             ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
  88.             if (arrayList.Count > 0)
  89.             {
  90.                 foreach (Dictionary<string, object> dictionary in arrayList)
  91.                 {
  92.                     if (dictionary.Keys.Count<string>() == 0)
  93.                     {
  94.                         result = dataTable;
  95.                         return result;
  96.                     }
  97.                     if (dataTable.Columns.Count == 0)
  98.                     {
  99.                         foreach (string current in dictionary.Keys)
  100.                         {
  101.                             dataTable.Columns.Add(current, dictionary[current].GetType());
  102.                         }
  103.                     }
  104.                     DataRow dataRow = dataTable.NewRow();
  105.                     foreach (string current in dictionary.Keys)
  106.                     {
  107.                         dataRow[current] = dictionary[current];
  108.                     }

  109.                     dataTable.Rows.Add(dataRow); //循环添加行到DataTable中
  110.                 }
  111.             }
  112.         }
  113.         catch
  114.         {
  115.         }
  116.         result = dataTable;
  117.         return result;
  118.     }
  119.     #endregion

  120.     #region 转换为string字符串类型
  121.     /// <summary>
  122.     ///  转换为string字符串类型
  123.     /// </summary>
  124.     /// <param name="s">获取需要转换的值</param>
  125.     /// <param name="format">需要格式化的位数</param>
  126.     /// <returns>返回一个新的字符串</returns>
  127.     public static string ToStr(this object s, string format = "")
  128.     {
  129.         string result = "";
  130.         try
  131.         {
  132.             if (format == "")
  133.             {
  134.                 result = s.ToString();
  135.             }
  136.             else
  137.             {
  138.                 result = string.Format("{0:" + format + "}", s);
  139.             }
  140.         }
  141.         catch
  142.         {
  143.         }
  144.         return result;
  145.     }
  146.    #endregion
复制代码


1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马