• c#常用的Datable转换为json,以及json转换为DataTable操作方法


    [csharp] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    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.   
    20.   
    21.        //获取合同明细列表  DataTable 转换为Json字符串  
    22.         if (method == "txtdate")  
    23.         {  
    24.             string json = "";  
    25.             BO.MakeContractMx bll = new MakeContractMx();  
    26.             DataSet ds = bll.GetDataTable();  
    27.             if (ds.Tables.Count > 0)  
    28.             {  
    29.                 json =ToJson(ds.Tables[0]);  
    30.             }  
    31.             context.Response.Write(json);  
    32.             return;  
    33.         }  
    34.   
    35.     }  
    36.   
    37.    public bool IsReusable  
    38.     {  
    39.         get  
    40.         {  
    41.             return false;  
    42.         }  
    43.     }  
    44. }  
    45.  
    46.    #endregion  
    47.  
    48.     #region Json字符串转换为DataTable 实例方法  
    49.   
    50.     public DataTable JsonToDataTable(json)  
    51.     {  
    52.        DataTable  dt= ToDataTable(json);  
    53.          return dt;  
    54.     }  
    55.      
    56.    #endregion  
    57.  
    58.     #region DataTable 转换为Json 字符串  
    59.     /// <summary>  
    60.     /// DataTable 对象 转换为Json 字符串  
    61.     /// </summary>  
    62.     /// <param name="dt"></param>  
    63.     /// <returns></returns>  
    64.     public static string ToJson(this DataTable dt)  
    65.     {  
    66.         JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();  
    67.         javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值  
    68.         ArrayList arrayList = new ArrayList();  
    69.         foreach (DataRow dataRow in dt.Rows)  
    70.         {  
    71.             Dictionary<string, object> dictionary = new Dictionary<string, object>();  //实例化一个参数集合  
    72.             foreach (DataColumn dataColumn in dt.Columns)  
    73.             {  
    74.                 dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToStr());  
    75.             }  
    76.             arrayList.Add(dictionary); //ArrayList集合中添加键值  
    77.         }  
    78.   
    79.         return javaScriptSerializer.Serialize(arrayList);  //返回一个json字符串  
    80.     }  
    81.     #endregion  
    82.  
    83.     #region Json 字符串 转换为 DataTable数据集合  
    84.     /// <summary>  
    85.     /// Json 字符串 转换为 DataTable数据集合  
    86.     /// </summary>  
    87.     /// <param name="json"></param>  
    88.     /// <returns></returns>  
    89.     public static DataTable ToDataTable(this string json)  
    90.     {  
    91.         DataTable dataTable = new DataTable();  //实例化  
    92.         DataTable result;  
    93.         try  
    94.         {  
    95.             JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();  
    96.             javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值  
    97.             ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);  
    98.             if (arrayList.Count > 0)  
    99.             {  
    100.                 foreach (Dictionary<string, object> dictionary in arrayList)  
    101.                 {  
    102.                     if (dictionary.Keys.Count<string>() == 0)  
    103.                     {  
    104.                         result = dataTable;  
    105.                         return result;  
    106.                     }  
    107.                     if (dataTable.Columns.Count == 0)  
    108.                     {  
    109.                         foreach (string current in dictionary.Keys)  
    110.                         {  
    111.                             dataTable.Columns.Add(current, dictionary[current].GetType());  
    112.                         }  
    113.                     }  
    114.                     DataRow dataRow = dataTable.NewRow();  
    115.                     foreach (string current in dictionary.Keys)  
    116.                     {  
    117.                         dataRow[current] = dictionary[current];  
    118.                     }  
    119.   
    120.                     dataTable.Rows.Add(dataRow); //循环添加行到DataTable中  
    121.                 }  
    122.             }  
    123.         }  
    124.         catch  
    125.         {  
    126.         }  
    127.         result = dataTable;  
    128.         return result;  
    129.     }  
    130.     #endregion  
    131.  
    132.     #region 转换为string字符串类型  
    133.     /// <summary>  
    134.     ///  转换为string字符串类型  
    135.     /// </summary>  
    136.     /// <param name="s">获取需要转换的值</param>  
    137.     /// <param name="format">需要格式化的位数</param>  
    138.     /// <returns>返回一个新的字符串</returns>  
    139.     public static string ToStr(this object s, string format = "")  
    140.     {  
    141.         string result = "";  
    142.         try  
    143.         {  
    144.             if (format == "")  
    145.             {  
    146.                 result = s.ToString();  
    147.             }  
    148.             else  
    149.             {  
    150.                 result = string.Format("{0:" + format + "}", s);  
    151.             }  
    152.         }  
    153.         catch  
    154.         {  
    155.         }  
    156.         return result;  
    157.     }  
    158.    #endregion  


    /*==============================================================================
    *
    * Filename: DatatableToJson.cs
    * Description: 主要包含两个方法:
       1. 获取的DataTable 对象 转换为Json 字符串
       2. Json 字符串 转换为 DataTable数据集合

  • 相关阅读:
    windows10上运行Linux Bash Shell
    作为DBA,该不该买macbook
    MySQL5.5 同步到5.7 遇到一坑,导致主从断掉
    CentOS7下安装SQL SERVER linux版
    MySQL设置utf8mb4,支持emoji并验证
    Nginx在window环境下设置二级访问目录
    win10 如何给定脑固定ip
    react中 getFieldProps 方法定义说明
    node中npm结构详解以及自定义npm包上传到npm教程
    nodejs npm包管理常用命令介绍
  • 原文地址:https://www.cnblogs.com/momjs/p/5846676.html
Copyright © 2020-2023  润新知