c#常用的Datable转换为json,以及json转换为DataTable操作方法
- #region DataTable 转换为Json字符串实例方法
- /// <summary>
- /// GetClassTypeJosn 的摘要说明
- /// </summary>
- public class GetClassTypeJosn : IHttpHandler
- {
- /// <summary>
- /// 文件名:DataTable 和Json 字符串互转
- /// 版权所有:Copyright (C) Create Family Wealth liangjw
- /// 创建标示:2013-08-03
- /// </summary>
- //用法说明实例
- 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 字符串
- /// <summary>
- /// DataTable 对象 转换为Json 字符串
- /// </summary>
- /// <param name="dt"></param>
- /// <returns></returns>
- 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<string, object> dictionary = new Dictionary<string, object>(); //实例化一个参数集合
- 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数据集合
- /// <summary>
- /// Json 字符串 转换为 DataTable数据集合
- /// </summary>
- /// <param name="json"></param>
- /// <returns></returns>
- 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<ArrayList>(json);
- if (arrayList.Count > 0)
- {
- foreach (Dictionary<string, object> dictionary in arrayList)
- {
- if (dictionary.Keys.Count<string>() == 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字符串类型
- /// <summary>
- /// 转换为string字符串类型
- /// </summary>
- /// <param name="s">获取需要转换的值</param>
- /// <param name="format">需要格式化的位数</param>
- /// <returns>返回一个新的字符串</returns>
- 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
/*==============================================================================
*
* Filename: DatatableToJson.cs
* Description: 主要包含两个方法:
1. 获取的DataTable 对象 转换为Json 字符串
2. Json 字符串 转换为 DataTable数据集合
c#常用的Datable转换为json,以及json转换为DataTable操作方法的更多相关文章
- 利用JSON将Map转换为类对象
Map类型做为一种常见的Java类型,经常在开发过程中使用,笔者最近遇到要将Map对象做为一种通用的参数变量,下传到多个业务类方法中,然后在各个业务类方法中将Map转换为指定类对象的情况.如何将Map ...
- Python将JSON格式数据转换为SQL语句以便导入MySQL数据库
前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据.我们希望把这些数据导入到MySQL数据库中.phpMyadmin能够把MySQL数据库中的数据导出为JSON格式文件,但却 ...
- python进阶05 常用问题库(1)json os os.path模块
python进阶05 常用问题库(1)json os os.path模块 一.json模块(数据交互) web开发和爬虫开发都离不开数据交互,web开发是做网站后台的,要跟网站前端进行数据交互 1.什 ...
- 类对象传输到jsp页面。需要转换为js的json对象时,这么做。
场景:要从一个列表中选择信息,填写入父页面的表单中,但是字段非常多... 后台查询,得到结果,放在列表中. 效果:点击选择产品.. 弹出页面:点击后面的选择产品 选择产品后:信息自动填充.. 实现:点 ...
- Python 常用模块(2) 序列化(pickle,shelve,json,configpaser)
主要内容: 一. 序列化概述 二. pickle模块 三. shelve模块 四. json模块(重点!) 五. configpaser模块 一. 序列化概述1. 序列化: 将字典,列表等内容转换成一 ...
- 函数和常用模块【day06】:json模块(十一)
本节内容 1.dumps序列化和loads反序列化 2.dump序列化和load反序列化 3.序列函数 1.dumps序列化和loads反序列化 dumps()序列化 1 2 3 4 5 6 7 8 ...
- 将Unix时间戳转换为Date、Json属性动态生成反序列化、序列化指定属性
实体类 public class Test { [JsonIgnore] public string GetDate { get { return GetTime.ToString("yyy ...
- 在JS和.NET中使用JSON (以及使用Linq to JSON定制JSON数据)
转载原地址: http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如 ...
- 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)
在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...
- 对象、对象数组、JSON、JSON数组的相关操作
本文主要是对JS操作JSON的要领做下总结在JSON中,有两种结构:对象和数组 1. 一个对象以“{”(左括号)开始,“}”(右括号)结束.每个“名称”后跟一个“:”(冒号):“"名称/值& ...
随机推荐
- css3实现手机效果的“切换标签”
Style样式 .toggle { position: relative; display: inline-block; width: 60px; height: 30px; border: 1px ...
- POJ3612:Telephone Wire
传送门 一道很棒的DP题目. 裸的DP方程很好搞: $f[i][j]=min \{ f[i-1][k]+ C \times |k-j| +(k-a[i])^2 \}$ 这个复杂度显然无法承受,考虑优化 ...
- UVA10054The Necklace (打印欧拉路)
题目链接 题意:一种由彩色珠子组成的项链.每个珠子的两半由不同的颜色组成.相邻的两个珠子在接触的地方颜色相同.现在有一些零碎的珠子,需要确定他们是否可以复原成完整的项链 分析:之前也没往欧拉路上面想, ...
- mysql forget root password
http://www.rackspace.com/knowledge_center/article/mysql-resetting-a-lost-mysql-root-password MySQL - ...
- Can not issue data manipulation statements with executeQuery() 异常处理
1.这个异常的报错翻译过来就是 不能发出数据操纵语句与executeQuery() 2.这里要检查一下你要执行的实际SQL语句要做什么操作 查询呢?还是修改? 3.如果是修改的话,需要添加@Modif ...
- llinux 查看自己的公网ip
如何在LINUX服务器下查看公网IP地址,可以使用下面的方法: [root@web ~]#curl http://members.3322.org/dyndns/getip [root@web ~]# ...
- ArcGIS Server 10.1 for Linux典型问题总结
关闭开启server服务: [gis@localhost ArcGISServer]$ cd /home/gis/arcgis/server [gis@localhost server]$ ./sto ...
- Java——UDP
import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; //===== ...
- Java——下拉列表框:JComboBox
import java.awt.Container; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import j ...
- 调用startActivityForResult,onActivityResult无响应的解决办法
三种情况: 1.执行startActivityForResult,没等到被调用的 Activity 返回,onActivityResult() 就被执行了.找了很久,终于通过小道消息得知,这与 Act ...