DataTable和Json的相互转换
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
DataTable和Json的相互转换的更多相关文章
- 靠谱的datatable转json方法
今天有之前同事问我要datatable转json的方法,以前自己也弄过,但感觉网上有很多不靠谱的方法.所以自己在博客里记录一个,当然也是网上找的,但是这个靠谱一点,起码可以用不会报错,所以叫他靠谱的d ...
- List与Json的相互转换
List 与 Json 的相互转换,需要使用到6个jar包,如果不引用这些jar包,需要写的代码量比较多,这里暂时记录的是使用jar包来进行转换的情况. 下面图片是测试demo的结构,仅供参考,需要注 ...
- DataTable转Json字符串(使用Newtonsoft.Json.dll)
DataTable转Json字符串(使用Newtonsoft.Json.dll) 在需要把DataTable转为Json字符串时,自己手动拼接太麻烦,而且容易出错,费时费力,使用Newtonsoft. ...
- DataTable 和Json 字符串互转
#region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> ...
- [C#]Datatable和json互相转换操作
#region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> ...
- Datatable转换Json
#region Datatable转换为Json /// <summary> /// Datatable转换为Json /// </su ...
- C#中把Datatable转换为Json的5个代码实例
一. /// <summary> /// Datatable转换为Json /// </summary> /// <param name="table" ...
- JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List转JSON,JSON转List,JSON转C#对象
一.JSON解析与字符串化 JSON.stringify() 序列化对象.数组或原始值 语法:JSON.stringify(o,filter,indent) o,要转换成JSON的对象.数组或原始值 ...
- C#中DataTable转换JSON
#region 将DataTable转换为json public string dt2json(DataTable dt) { JavaScriptSerializer jss = new JavaS ...
随机推荐
- .net面试题升级版
1.列举ASP.NET页面之间传值的几种方式. 答:使用QueryString,如.../id=1;response.Redirect() 使用Session 使用Server.Transfer 使用 ...
- MyBatis 学习(一)
一.MyBatis 1.MyBatis 介绍(百度) MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数 ...
- java 多线程执行过程
1.分支线程执行 过程: 2.线程运行的状态:五大状态 线程: 从新建状态 就绪状态 运行状态 挂起(阻塞)状态 死亡状态(结束,销毁) 3. 多线程:在同一个时间执行多个任务的操作,现在的软 ...
- csharp:Google TTS API text to speech
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- BootStrap:
BootStrap: * 响应式的HTML,CSS,JS的框架. * 响应式设计: * 设计一套页面,适配不同的设备,在手机,PAD,PC端都能够正常浏览. * 响应式原理: * 使用CSS3的媒体查 ...
- mysqlcppconn之ConnectOptionsMap的使用
由来 继上一篇文章, 发现之前写的一篇文章中断线重连部分是错误的, 也是现在翻阅了源码才知道 想要自动重连, 必须使用ConnectOptionsMap才可以 但由于官方代码没有做好导出部分的处理, ...
- vs2010开发activex(MFC)控件/ie插件(三),js调用ocx控件的接口函数
原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/50802280 js调用ocx控件的接口函数,先看demo效果: 简单测试过程 ...
- 致 BitClub 矿池,你们为什么要对比特币网络发动交易延展性攻击?
原文:https://medium.com/@bithernet/bitclub-why-are-you-doing-malleability-attack-now-6faa194b2146#.v4y ...
- 如果Android的jar包导入错误,怎么修改呢?
如果jar包导入错误,怎么修改呢? 右键工程---->properties---->Java Build Path --->Libraries-->选择android-supp ...
- CI框架, 参数验证
/** * 统一API参数检验方法 * * 调用示例 check_param(array('money' => array('required', 'integer', 'greater_tha ...