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的相互转换的更多相关文章

  1. 靠谱的datatable转json方法

    今天有之前同事问我要datatable转json的方法,以前自己也弄过,但感觉网上有很多不靠谱的方法.所以自己在博客里记录一个,当然也是网上找的,但是这个靠谱一点,起码可以用不会报错,所以叫他靠谱的d ...

  2. List与Json的相互转换

    List 与 Json 的相互转换,需要使用到6个jar包,如果不引用这些jar包,需要写的代码量比较多,这里暂时记录的是使用jar包来进行转换的情况. 下面图片是测试demo的结构,仅供参考,需要注 ...

  3. DataTable转Json字符串(使用Newtonsoft.Json.dll)

    DataTable转Json字符串(使用Newtonsoft.Json.dll) 在需要把DataTable转为Json字符串时,自己手动拼接太麻烦,而且容易出错,费时费力,使用Newtonsoft. ...

  4. DataTable 和Json 字符串互转

    #region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> ...

  5. [C#]Datatable和json互相转换操作

    #region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> ...

  6. Datatable转换Json

    #region Datatable转换为Json        /// <summary>         /// Datatable转换为Json         /// </su ...

  7. C#中把Datatable转换为Json的5个代码实例

    一. /// <summary> /// Datatable转换为Json /// </summary> /// <param name="table" ...

  8. JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List转JSON,JSON转List,JSON转C#对象

    一.JSON解析与字符串化 JSON.stringify() 序列化对象.数组或原始值 语法:JSON.stringify(o,filter,indent) o,要转换成JSON的对象.数组或原始值 ...

  9. C#中DataTable转换JSON

    #region 将DataTable转换为json public string dt2json(DataTable dt) { JavaScriptSerializer jss = new JavaS ...

随机推荐

  1. js校验数字是否为小数

    js校验数字是否为小数: function checkDot(c) {c = parseFloat(c); -]?[-]*\.[-]*[-]+$/; return r.test(c); }

  2. <td>标签scope属性

    HTML <td> 标签的 scope 属性 HTML <td> 标签 实例 下面的例子把两个 th 元素标识为列的表头,把两个 td 元素标识为行的表头: <table ...

  3. 流畅的python和cookbook学习笔记(二)

    1.元组拆包和解压序列赋值 任何的序列 (或者是可迭代对象) 可以通过一个简单的赋值语句解压并赋值给多个 变量.唯一的前提就是变量的数量必须跟序列元素的数量是一样的. 1.平行赋值: >> ...

  4. Excel批量生成条形码

    项目要求需要将信息做成条形码的形式,以便通过手持设备直接查看信息,因本次项目信息为固定信息,不需随机生成,故采用本方法: 代码随机生成二维码暂时没有接触,后续有时间会研究 步骤: 1.新建 Excel ...

  5. Java 不可变类

    Java 不可变类 immutable object 不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值. 如JDK内部自带的很多不可变类:Interger.Long和String等. * ...

  6. PHP框架中.htaccess文件作用

    1..htaccess文件使用前提 .htaccess的主要作用就是实现url改写,也就是当浏览器通过url访问到服务器某个文件夹时,作为主人,我们可以来接待这个url,具体地怎样接待它,就是此文件的 ...

  7. VC 在调用main函数之前的操作

    title: VC 在调用main函数之前的操作 tags: [VC++, 反汇编, C++实现原理] date: 2018-09-16 10:36:23 categories: VC++反汇编分析 ...

  8. php基础部分(1)

    PHP 输出文本的基础指令:echo 和 print.echo和print的区别echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)echo 输出一 ...

  9. <Android 应用 之路> 百度地图API使用(3)

    前言 上一篇讲解并实践了百度地图基本显示,地图类型,实时交通图,热力图,地图控制和手势控制,今天看下在地图上添加view和覆盖物. 地图Logo不允许遮挡,可通过mBaiduMap.setPaddin ...

  10. 01_dubbo实例_服务分组

    [为什么要服务分组?] 当一个接口有多种实现时,可以用group区分. [ Provider 的配置信息] <?xml version="1.0" encoding=&quo ...