zoukankan      html  css  js  c++  java
  • DataTable转换成json字符串

    将DataTable里面的行转换成json字符串方法:

     1         #region DataTable转为json 
     2         /// <summary> 
     3         /// DataTable转为json 
     4         /// </summary> 
     5         /// <param name="dt">DataTable</param> 
     6         /// <returns>json数据</returns> 
     7         public static string DataTableToJson(DataTable dt)
     8         {
     9             List<Dictionary<string, object>> list = (from DataRow dr in dt.Rows select dt.Columns.Cast<DataColumn>().ToDictionary(dc => dc.ColumnName, dc => dr[dc])).ToList();
    10             return SerializeToJson(list);
    11         } 
    12         #endregion
    13 
    14         #region 序列化对象为Json字符串
    15         /// <summary>
    16         /// 序列化对象为Json字符串
    17         /// </summary>
    18         /// <param name="obj">要序列化的对象</param>
    19         /// <param name="recursionLimit">序列化对象的深度,默认为100</param>
    20         /// <returns>Json字符串</returns>
    21         public static string SerializeToJson(object obj, int recursionLimit = 100)
    22         {
    23             try
    24             {
    25                 System.Web.Script.Serialization.JavaScriptSerializer serialize = new System.Web.Script.Serialization.JavaScriptSerializer();
    26                 serialize.RecursionLimit = recursionLimit;
    27                 return serialize.Serialize(obj);
    28             }
    29             catch { return ""; }
    30         } 
    31         #endregion
    32 
    33         #region json包转DataTable
    34         /// <summary>
    35         /// json包转DataTable
    36         /// </summary>
    37         /// <param name="jsons"></param>
    38         /// <returns></returns>
    39         public static DataTable JsonToDataTable(string jsons)
    40         {
    41             DataTable dt = new DataTable();
    42             try
    43             {
    44                 System.Web.Script.Serialization.JavaScriptSerializer serialize = new System.Web.Script.Serialization.JavaScriptSerializer();
    45                 serialize.MaxJsonLength = Int32.MaxValue;
    46                 ArrayList list = serialize.Deserialize<ArrayList>(jsons);
    47                 if (list.Count > 0)
    48                 {
    49                     foreach (Dictionary<string, object> item in list)
    50                     {
    51                         if (item.Keys.Count == 0)//无值返回空
    52                         {
    53                             return dt;
    54                         }
    55                         if (dt.Columns.Count == 0)//初始Columns
    56                         {
    57                             foreach (string current in item.Keys)
    58                             {
    59                                 dt.Columns.Add(current, item[current].GetType());
    60                             }
    61                         }
    62                         DataRow dr = dt.NewRow();
    63                         foreach (string current in item.Keys)
    64                         {
    65                             dr[current] = item[current];
    66                         }
    67                         dt.Rows.Add(dr);
    68                     }
    69                 }
    70             }
    71             catch
    72             {
    73                 return dt;
    74             }
    75             return dt;
    76         } 
    77         #endregion
  • 相关阅读:
    用Apache Kafka构建流数据平台
    kafka与传统的消息中间件对比
    Azkaban简介和使用
    kettle初探
    less命令
    spring扩展点之二:spring中关于bean初始化、销毁等使用汇总,ApplicationContextAware将ApplicationContext注入
    Spring 注释标签@Resource @Autowired 和@Inject的区别
    【MyEclipse 2015】 逆向破解实录系列【2】(纯研究)
    HDOJ 5073 Galaxy 数学 贪心
    windows 8.0上eclipse 4.4.0 配置centos 6.5 上的hadoop2.2.0开发环境
  • 原文地址:https://www.cnblogs.com/linJie1930906722/p/5704089.html
Copyright © 2011-2022 走看看