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-11-05 22:33:40

DataTable和Json的相互转换的相关文章

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

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

数组和json的相互转换

json_encode() <?php /*****一维数组*********/ //有键 $arr = array( 'a'=>1, 'b'=>2, 'c'=>3, ); $json = json_encode($arr); echo($json); //{"a":1,"b":2,"c":3} //无键 $arr = array(1,2,3); $json = json_encode($arr); echo($json)

xml转datatable和json

xml字符串转为DataTable与Json using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Xml; using System.Text; using System.Collections; using System.Data; /// <summary> ///XmlHelper 的摘要说明 /// </summary> publi

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

List与Json的相互转换

List 与 Json 的相互转换,需要使用到6个jar包,如果不引用这些jar包,需要写的代码量比较多,这里暂时记录的是使用jar包来进行转换的情况. 下面图片是测试demo的结构,仅供参考,需要注意jar包的版本问题. 其中 Test.java 中的代码如下: package com.listandjson; import java.util.ArrayList; import java.util.List; import net.sf.json.JSONArray; public clas

DataTable转json字符串,jQuery.parseJSON()把json字符串转为标准的json对象格式

1.string res = DataTableToJson.DataTable2Json(dt);讲DataTable转换为json字符串 http://www.365mini.com/page/jquery_parsejson.htm 2.jQuery.parseJSON()函数用于将格式完好的JSON字符串转为与之对应的JavaScript对象  var res = $.parseJSON(data).ds

DataTable 和Json 字符串互转

#region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> public class GetClassTypeJosn : IHttpHandler { /// <summary> /// 文件名:DataTable 和Json 字符串互转/// </summary> //用法说明实例 public void ProcessRequest(H

C# DataTable To Json 实现

项目中用到 JqGrid 前端数据控件,数据格式要求 为Json 虽然系统中有做相应实现,但未对DataTable 转 Json 有相应方法,故 在项目中 对 DataTable 写了一个转Json 的扩展方法,请看清楚 是扩展方法, 记得 Static 详细扩展方法的使用请 自行百度. 具体代码如下: public static string DataTableToJson( this DataTable  dt,string jsonName)     {         System.Te