[C#]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

时间: 2024-08-30 07:45:34

[C#]Datatable和json互相转换操作的相关文章

json的转换操作

toJSON 把JS对象{ 'x': 2, 'y': 3 }转为JSON对象格式的字符串   不能转化字符串 比如"{ 'x': 2, 'y': 3 }" 可以转格式不标准的json对象格式比如 {name:haha,age:11} 例: var data={name:'haha',age:11} var format_str=$.toJSON(data) var json_obj = $.parseJSON(format_str); alert(json_obj.name); 要引用

JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List&lt;T&gt;转JSON,JSON转List&lt;T&gt;,JSON转C#对象

一.JSON解析与字符串化                                                                                            JSON.stringify() 序列化对象.数组或原始值 语法:JSON.stringify(o,filter,indent) o,要转换成JSON的对象.数组或原始值 filter,指定要序列化的属性名 indent,格式化为可读的代码,可指定分隔符或指定的缩进空格个数 var man

python对json的相关操作以及json模块的简要分析

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成. JSON有两种结构: 第一种就是"名称/值"对的集合.在python中相当于字典类型,在其他语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array). 第二种就是值的有序列表

Datatable转换为Json 然后把Json数据放入 js 文件中

C#中把Datatable转换为Json的5个代码实例 /// <summary> /// Datatable转换为Json /// </summary> /// <param name="table">Datatable对象</param> /// <returns>Json字符串</returns> public static string ToJson(DataTable dt) { StringBuilde

[转]python对json的相关操作

json官方说明参见:http://json.org/ Python操作json的标准api库参考:http://docs.python.org/library/json.html 对简单数据类型的encoding 和 decoding: 使用简单的json.dumps方法对简单数据类型进行编码,例如: 1 2 3 4 5 6 import json obj = [[1,2,3],123,123.123,'abc',{'key1':(1,2,3),'key2':(4,5,6)}] encoded

python对json的相关操作

什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集.JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等).这

Json概述以及python对json的相关操作

转载自:http://www.cnblogs.com/coser/archive/2011/12/14/2287739.html 什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集.JSON采用完全独立于语言的文本格式,但

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

一. /// <summary> /// Datatable转换为Json /// </summary> /// <param name="table">Datatable对象</param> /// <returns>Json字符串</returns> public static string ToJson(DataTable dt) { StringBuilder jsonString = new String

json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)

1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包. 2.下载jar包 http://xiazai.jb51.net/201707/yuanma/lib_jb51.rar 提供了除JSONObject的jar之外依赖的其他6个jar包,一共7个jar文件 说明:因为工作中项目用到的版本是1.1的对应jdk1.3的版本,故本篇博客是基于1.1版本介绍的. 对应此版本的javadoc下载