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. //获取合同明细列表  DataTable 转换为Json字符串
  20. if (method == "txtdate")
  21. {
  22. string json = "";
  23. BO.MakeContractMx bll = new MakeContractMx();
  24. DataSet ds = bll.GetDataTable();
  25. if (ds.Tables.Count > 0)
  26. {
  27. json =ToJson(ds.Tables[0]);
  28. }
  29. context.Response.Write(json);
  30. return;
  31. }
  32. }
  33. public bool IsReusable
  34. {
  35. get
  36. {
  37. return false;
  38. }
  39. }
  40. }
  41. #endregion
  42. #region Json字符串转换为DataTable 实例方法
  43. public DataTable JsonToDataTable(json)
  44. {
  45. DataTable  dt= ToDataTable(json);
  46. return dt;
  47. }
  48. #endregion
  49. #region DataTable 转换为Json 字符串
  50. /// <summary>
  51. /// DataTable 对象 转换为Json 字符串
  52. /// </summary>
  53. /// <param name="dt"></param>
  54. /// <returns></returns>
  55. public static string ToJson(this DataTable dt)
  56. {
  57. JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
  58. javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
  59. ArrayList arrayList = new ArrayList();
  60. foreach (DataRow dataRow in dt.Rows)
  61. {
  62. Dictionary<string, object> dictionary = new Dictionary<string, object>();  //实例化一个参数集合
  63. foreach (DataColumn dataColumn in dt.Columns)
  64. {
  65. dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToStr());
  66. }
  67. arrayList.Add(dictionary); //ArrayList集合中添加键值
  68. }
  69. return javaScriptSerializer.Serialize(arrayList);  //返回一个json字符串
  70. }
  71. #endregion
  72. #region Json 字符串 转换为 DataTable数据集合
  73. /// <summary>
  74. /// Json 字符串 转换为 DataTable数据集合
  75. /// </summary>
  76. /// <param name="json"></param>
  77. /// <returns></returns>
  78. public static DataTable ToDataTable(this string json)
  79. {
  80. DataTable dataTable = new DataTable();  //实例化
  81. DataTable result;
  82. try
  83. {
  84. JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
  85. javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
  86. ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
  87. if (arrayList.Count > 0)
  88. {
  89. foreach (Dictionary<string, object> dictionary in arrayList)
  90. {
  91. if (dictionary.Keys.Count<string>() == 0)
  92. {
  93. result = dataTable;
  94. return result;
  95. }
  96. if (dataTable.Columns.Count == 0)
  97. {
  98. foreach (string current in dictionary.Keys)
  99. {
  100. dataTable.Columns.Add(current, dictionary[current].GetType());
  101. }
  102. }
  103. DataRow dataRow = dataTable.NewRow();
  104. foreach (string current in dictionary.Keys)
  105. {
  106. dataRow[current] = dictionary[current];
  107. }
  108. dataTable.Rows.Add(dataRow); //循环添加行到DataTable中
  109. }
  110. }
  111. }
  112. catch
  113. {
  114. }
  115. result = dataTable;
  116. return result;
  117. }
  118. #endregion
  119. #region 转换为string字符串类型
  120. /// <summary>
  121. ///  转换为string字符串类型
  122. /// </summary>
  123. /// <param name="s">获取需要转换的值</param>
  124. /// <param name="format">需要格式化的位数</param>
  125. /// <returns>返回一个新的字符串</returns>
  126. public static string ToStr(this object s, string format = "")
  127. {
  128. string result = "";
  129. try
  130. {
  131. if (format == "")
  132. {
  133. result = s.ToString();
  134. }
  135. else
  136. {
  137. result = string.Format("{0:" + format + "}", s);
  138. }
  139. }
  140. catch
  141. {
  142. }
  143. return result;
  144. }
  145. #endregion

/*==============================================================================
*
* Filename: DatatableToJson.cs
* Description: 主要包含两个方法:
   1. 获取的DataTable 对象 转换为Json 字符串
   2. Json 字符串 转换为 DataTable数据集合

c#常用的Datable转换为json,以及json转换为DataTable操作方法的更多相关文章

  1. 利用JSON将Map转换为类对象

    Map类型做为一种常见的Java类型,经常在开发过程中使用,笔者最近遇到要将Map对象做为一种通用的参数变量,下传到多个业务类方法中,然后在各个业务类方法中将Map转换为指定类对象的情况.如何将Map ...

  2. Python将JSON格式数据转换为SQL语句以便导入MySQL数据库

    前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据.我们希望把这些数据导入到MySQL数据库中.phpMyadmin能够把MySQL数据库中的数据导出为JSON格式文件,但却 ...

  3. python进阶05 常用问题库(1)json os os.path模块

    python进阶05 常用问题库(1)json os os.path模块 一.json模块(数据交互) web开发和爬虫开发都离不开数据交互,web开发是做网站后台的,要跟网站前端进行数据交互 1.什 ...

  4. 类对象传输到jsp页面。需要转换为js的json对象时,这么做。

    场景:要从一个列表中选择信息,填写入父页面的表单中,但是字段非常多... 后台查询,得到结果,放在列表中. 效果:点击选择产品.. 弹出页面:点击后面的选择产品 选择产品后:信息自动填充.. 实现:点 ...

  5. Python 常用模块(2) 序列化(pickle,shelve,json,configpaser)

    主要内容: 一. 序列化概述 二. pickle模块 三. shelve模块 四. json模块(重点!) 五. configpaser模块 一. 序列化概述1. 序列化: 将字典,列表等内容转换成一 ...

  6. 函数和常用模块【day06】:json模块(十一)

    本节内容 1.dumps序列化和loads反序列化 2.dump序列化和load反序列化 3.序列函数 1.dumps序列化和loads反序列化 dumps()序列化 1 2 3 4 5 6 7 8 ...

  7. 将Unix时间戳转换为Date、Json属性动态生成反序列化、序列化指定属性

    实体类 public class Test { [JsonIgnore] public string GetDate { get { return GetTime.ToString("yyy ...

  8. 在JS和.NET中使用JSON (以及使用Linq to JSON定制JSON数据)

    转载原地址: http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如 ...

  9. 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)

    在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...

  10. 对象、对象数组、JSON、JSON数组的相关操作

    本文主要是对JS操作JSON的要领做下总结在JSON中,有两种结构:对象和数组 1. 一个对象以“{”(左括号)开始,“}”(右括号)结束.每个“名称”后跟一个“:”(冒号):“"名称/值& ...

随机推荐

  1. 常见linux命令释义(第七天)——ulimit 与变量内容的删除替代与替换。

    linux是一个多用户多任务的系统,不同于windows的单人多任务操作系统.再linux上,在同一个时间点上,可以有多个人同时执行多个任务. 那么假若有10个用户,同时打开了100个100M的文件. ...

  2. JavaScript之继承(原型链)

    JavaScript之继承(原型链) 我们知道继承是oo语言中不可缺少的一部分,对于JavaScript也是如此.一般的继承有两种方式:其一,接口继承,只继承方法的签名:其二,实现继承,继承实际的方法 ...

  3. [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify uniq

    angularjs 使用ng-repeat报错 <div ng-init="words = ['高校','高校','高校']" ng-repeat="word in ...

  4. System.BadImageFormatException : 未能加载文件或程序集“Medici.PaymentRecover, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。试图加载格式不正确的程序。

    System.BadImageFormatException : 未能加载文件或程序集“xxxxx.xxxxx, Version=1.0.0.0, Culture=neutral, PublicKey ...

  5. AspNetUsers

    public class CanDooDbContext : DbContextBase<CanDooDbContext> { protected override void OnMode ...

  6. 登录验证码编写(jsp+servlet+dao)

    一.什么是验证码及它的作用 验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是必须只有人类才能解答. 可以防止恶意破解密码.刷 ...

  7. Bootstrap学习------Tabel

    Bootstrap的表格和Html表格大同小异,只是封装了一些css供我们使用 <table>标签必须引用class="table"基类样式,我们可以根据需求赛选需要的 ...

  8. spring之BeanFactoryAware接口

    springBeanFactoryAware (转)要直接在自己的代码中读取spring的bean,我们除了根据常用的set外,也可以通过spring的BeanFactoryAware接口实现,只要实 ...

  9. iOS-设置UIPageControl 显示图片

    UIPageControl 的默认样式是几个小圆点,系统没有提供属性供我们自定义这几个小圆点的样式,不过我们依然可以使用KVC来自定义PageControl的显示样式 UIPageControl *p ...

  10. [CentOs7]安装mysql(2)

    摘要 之前安装过一次mysql,最后配置,发现在本地无法连接,重启服务的时候一直卡在那里不动,感觉是安装的过程出问题,最后没办法还是卸载了,然后重新安装一下. [CentOs7]安装mysql Mys ...