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. Java生成验证码(二)

    前一篇博客已经介绍了如何用Java servlet产生验证码,本篇继续介绍如何使用一些开源组件生成验证码 ————————————————————————————————————————————   ...

  2. Winform DataGridView列的单元格中动态添加图片和文字

    先上图在说,第二列中图片和文字的样式 1.需要重写DataGridViewTextBoxColumn,新建类TextAndImageColumn.cs using System; using Syst ...

  3. 微信公众号开发《一》OAuth2.0网页授权认证获取用户的详细信息,实现自动登陆

    原创声明:本文为本人原创作品,绝非他处转账,转载请联系博主 从接触公众号到现在,开发维护了2个公众号,开发过程中遇到很多问题,现在把部分模块功能在这备案一下,做个总结也希望能给其他人帮助 工欲善其事, ...

  4. Django Cookie于Session

    一.Cookie与Session由来 因为Http协议的特性,每一次来自用户浏览器的请求都是无状态且独立的,通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用 ...

  5. Python-并发编程(线程)

    之前我们说了并发编程中的进程问题,几天我们来聊聊并发编程中的线程问题. 一.背景知识 1.进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能 ...

  6. sass判断语句

    @if判断 @if可一个条件单独使用,也可以和@else结合多条件使用 scss.style css.style 三目判断 语法为:if($condition, $if_true, $if_false ...

  7. react 使用fortawesome字体图标

    fontawesome 官方使用教程=>点我 npm i --save @fortawesome/fontawesome-svg-core@prerelease \ npm i --save @ ...

  8. win7 64 位安装 python,提示: 0x80240017-未指定的错误

    首先确保从python官网下载正确的python版本: https://www.python.org/downloads/windows/ 然后,应该是 VC 相关的问题. 去微软网站下载下列补丁包即 ...

  9. klee错误汇报二:KLEE的optimize选项的一个困惑

    问题已经提交github:https://github.com/klee/klee/issues/650 在一个对命令行参数进行建模的符号执行过程中,添加optimize选项与不添加optimize选 ...

  10. Http重要知识点