博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataTable 和Json 字符串互转
阅读量:4880 次
发布时间:2019-06-11

本文共 4144 字,大约阅读时间需要 13 分钟。

#region  DataTable 转换为Json字符串实例方法/// /// GetClassTypeJosn 的摘要说明/// public class GetClassTypeJosn : IHttpHandler{    ///     /// 文件名:DataTable 和Json 字符串互转///      //用法说明实例     public void ProcessRequest(HttpContext context)    {        context.Response.ContentType = "application/json";        context.Response.Charset = "utf-8";        HttpRequest req = context.Request;        string method = req["method"].ToStr().ToLower();       //获取合同明细列表  DataTable 转换为Json字符串        if (method == "txtdate")        {            string json = "";            BO.MakeContractMx bll = new MakeContractMx();            DataSet ds = bll.GetDataTable();            if (ds.Tables.Count > 0)            {                json =ToJson(ds.Tables[0]);            }            context.Response.Write(json);            return;        }    }   public bool IsReusable    {        get        {            return false;        }    }}   #endregion    #region Json字符串转换为DataTable 实例方法    public DataTable JsonToDataTable(json)    {       DataTable  dt= ToDataTable(json);         return dt;    }        #endregion    #region DataTable 转换为Json 字符串    ///     /// DataTable 对象 转换为Json 字符串    ///     ///     /// 
public static string ToJson(this DataTable dt) { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值 ArrayList arrayList = new ArrayList(); foreach (DataRow dataRow in dt.Rows) { Dictionary
dictionary = new Dictionary
(); //实例化一个参数集合 foreach (DataColumn dataColumn in dt.Columns) { dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToStr()); } arrayList.Add(dictionary); //ArrayList集合中添加键值 } return javaScriptSerializer.Serialize(arrayList); //返回一个json字符串 } #endregion #region Json 字符串 转换为 DataTable数据集合 ///
/// Json 字符串 转换为 DataTable数据集合 /// ///
///
public static DataTable ToDataTable(this string json) { DataTable dataTable = new DataTable(); //实例化 DataTable result; try { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值 ArrayList arrayList = javaScriptSerializer.Deserialize
(json); if (arrayList.Count > 0) { foreach (Dictionary
dictionary in arrayList) { if (dictionary.Keys.Count
() == 0) { result = dataTable; return result; } if (dataTable.Columns.Count == 0) { foreach (string current in dictionary.Keys) { dataTable.Columns.Add(current, dictionary[current].GetType()); } } DataRow dataRow = dataTable.NewRow(); foreach (string current in dictionary.Keys) { dataRow[current] = dictionary[current]; } dataTable.Rows.Add(dataRow); //循环添加行到DataTable中 } } } catch { } result = dataTable; return result; } #endregion #region 转换为string字符串类型 ///
/// 转换为string字符串类型 /// ///
获取需要转换的值 ///
需要格式化的位数 ///
返回一个新的字符串
public static string ToStr(this object s, string format = "") { string result = ""; try { if (format == "") { result = s.ToString(); } else { result = string.Format("{0:" + format + "}", s); } } catch { } return result; } #endregion

 

转载于:https://www.cnblogs.com/fjptwwf/p/5764176.html

你可能感兴趣的文章
ora-12899解决方法
查看>>
(8)关于flexbox的一些想法。
查看>>
一台机子同时启动两个相同版本的tomcat
查看>>
剑指offer——python【第29题】最小的K个数
查看>>
带你入门代理模式/SpringAop的运行机制
查看>>
eclipse对离线python的环境搭建
查看>>
OpenCV imshow无法显示图片
查看>>
js线程&定时器
查看>>
java.lang.IllegalStateException: getOutputStream() has already been cal
查看>>
Ubuntu下搜狗输入法乱码
查看>>
计算机网络●通信协议
查看>>
在EditPlus里配置编译和运行java代码的方法
查看>>
gson所需jar包
查看>>
最干净的pyinstaller打包成exe应用程序方法
查看>>
Python中的数据类型
查看>>
讲给普通人听的分布式数据存储【转载】
查看>>
关于最短路
查看>>
Hbase记录-zookeeper部署
查看>>
Python pexpect出现错误‘module have no attribute "spawn" 解决办法
查看>>
vs2008 C# 怎么调试C++ dll[转]
查看>>