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. 如何查找消耗资源较大的SQL

    对于优化来讲,查找消耗资源较大的SQL至关重要,下面介绍几个之前用到的SQL. 1.从V$SQLAREA中查询最占用资源的查询. select b.username username,a.disk_r ...

  2. input:checkbox 是否被选中?

    <input type="checkbox" id="checkbox1"> <script> $(function(){ $(&quo ...

  3. access 2010,数学

    access 2010(窗体控制和创建窗体) 窗体向导:选择表格---创建---窗体---窗体向导---选择表/查询---全选可用字段---选择布局---设置标题---完成. 其他窗体:选择表格--- ...

  4. python6

    集合-set    集合是高中数据中的一个概念.    确定的一堆无需数据,集合中的买个数据称为一个集合       集合的定义         1.创建空集合             变量 = se ...

  5. 小白学flask之路由,反向路由,路由参数

    # -*- coding: utf-8 -*- from flask import Flask, request, url_for app = Flask(__name__) @app.route(& ...

  6. js原生带缩略图的图片切换效果

    js原生带缩略图的图片切换效果 本例中用到的 moveElement(elementID,final_x,final_y,interval)是来自<JavaScript DOM编程艺术(中文第二 ...

  7. VueJS开发所用到的技术栈

    1. 主要使用vue.js2. 使用vue-cli脚手架搭建项目3. 使用vue-router来做路由,实现单页面跳转4. 使用iView UI作为前端UI框架,Mouse UI作为手机端UI框架5. ...

  8. siriWave.js的demo

    demo.html <style>body { background: #000; }</style> <script src="../siriwave.js& ...

  9. XPath路径表达式笔记(转载)

    简单说,xpath就是选择XML文件中节点的方法. 所谓节点(node),就是XML文件的最小构成单位,一共分成7种. - element(元素节点)- attribute(属性节点)- text ( ...

  10. awk日志分析

    前言 今天我们来讲讲如何用awk进行网站日志分析,得到页面平均耗时排行 文件 [xingxing.dxx@30_28_6_20 ~]$ cat logs /Oct/::: +] GET /pages/ ...