Asp.net常用开发方法之DataTable/DataReader转Json格式代码



  1 public static string JsonParse(OleDbDataReader dataReader) //DataRead转json
  2         {
  3             StringBuilder jsonString = new StringBuilder();
  4             jsonString.Append("[");
  5             while (dataReader.Read())
  6             {
  7                 jsonString.Append("{");
  8                 for (int i = 0; i < dataReader.FieldCount; i++)
  9                 {
 10                     Type type = dataReader.GetFieldType(i);
 11                     string strKey = dataReader.GetName(i);
 12                     string strValue = dataReader[i].ToString();
 13                     jsonString.Append("\"" + strKey + "\":");
 14                     strValue = JsonFormat(strValue, type);
 15                     if (i < dataReader.FieldCount - 1)
 16                     {
 17                         jsonString.Append(strValue + ",");
 18                     }
 19                     else
 20                     {
 21                         jsonString.Append(strValue);
 22                     }
 23                 }
 24                 jsonString.Append("},");
 25             }
 26             dataReader.Close();
 27             jsonString.Remove(jsonString.Length - 1, 1);
 28             jsonString.Append("]");
 29             string rv = jsonString.ToString();
 30             if (rv == "]") { rv = ""; }
 31             return jsonString.ToString();
 32         }
 33
 34         public static string JsonParse(DataTable dt)   //DataTable转json
 35         {
 36             DataRowCollection drc = dt.Rows;
 37             if (drc.Count == 0) { return ""; }
 38             StringBuilder jsonString = new StringBuilder();
 39             jsonString.Append("[");
 40             for (int i = 0; i < drc.Count; i++)
 41             {
 42                 jsonString.Append("{");
 43                 for (int j = 0; j < dt.Columns.Count; j++)
 44                 {
 45                     string strKey = dt.Columns[j].ColumnName;
 46                     string strValue = drc[i][j].ToString();
 47                     Type type = dt.Columns[j].DataType;
 48                     jsonString.Append("\"" + strKey + "\":");
 49                     strValue = JsonFormat(strValue, type);
 50                     if (j < dt.Columns.Count - 1)
 51                     {
 52                         jsonString.Append(strValue + ",");
 53                     }
 54                     else
 55                     {
 56                         jsonString.Append(strValue);
 57                     }
 58                 }
 59                 jsonString.Append("},");
 60             }
 61             jsonString.Remove(jsonString.Length - 1, 1);
 62             jsonString.Append("]");
 63             return jsonString.ToString();
 64         }
 65
 66         public static string JsonFormat(string str, Type type)
 67         {
 68             if (type == typeof(string))
 69             {
 70                 StringBuilder sb = new StringBuilder();
 71                 for (int i = 0; i < str.Length; i++)
 72                 {
 73                     char c = str.ToCharArray()[i];
 74                     switch (c)
 75                     {
 76                         case ‘\"‘:
 77                             sb.Append("\\\""); break;
 78                         case ‘\\‘:
 79                             sb.Append("\\\\"); break;
 80                         case ‘/‘:
 81                             sb.Append("\\/"); break;
 82                         case ‘\b‘:
 83                             sb.Append("\\b"); break;
 84                         case ‘\f‘:
 85                             sb.Append("\\f"); break;
 86                         case ‘\n‘:
 87                             sb.Append("\\n"); break;
 88                         case ‘\r‘:
 89                             sb.Append("\\r"); break;
 90                         case ‘\t‘:
 91                             sb.Append("\\t"); break;
 92                         default:
 93                             sb.Append(c); break;
 94                     }
 95                 }
 96                 str = sb.ToString();
 97                 str = "\"" + str + "\"";
 98             }
 99             else if (type == typeof(DateTime))
100             {
101                 if (IsDateTime(str))
102                 {
103                     DateTime dt = DateTime.Parse(str);
104                     str = "\"" + dt.GetDateTimeFormats(‘s‘)[0].ToString() + "\"";
105                 }
106                 else
107                 {
108                     str = "\"" + str + "\"";
109                 }
110                 // str = + str + ;
111             }
112             else
113             {
114                 str = "\"" + str + "\"";
115             }
116             return str;
117         }
118 public static bool IsDateTime(string str) //是否是日期格式(包含时间)
119         {
120             if (string.IsNullOrEmpty(str)) { return false; }
121             //日期
122             if (str.Trim().IndexOf(" ") < 0)
123             {
124                 return IsDate(str);
125             }
126             else
127             {
128                 string[] Astr = str.Split(‘ ‘); //日期+时间
129                 if (Astr.Length == 2)
130                 {
131                     return IsDate(Astr[0]) && System.Text.RegularExpressions.Regex.IsMatch(Astr[1], @"^(20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$");
132                 }
133                 else
134                 {
135                     return false;
136                 }
137             }
138         }
139
140         public static bool IsTime(string StrSource)
141         {
142             return Regex.IsMatch(StrSource, @"^((20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d)$");
143         }

 

时间: 2024-09-29 15:41:45

Asp.net常用开发方法之DataTable/DataReader转Json格式代码的相关文章

把DataTable 转换成Json格式,适用于EasyUI 绑定DataGrid

本文转载:http://www.cnblogs.com/liang--liang/archive/2013/02/05/2893030.html public static string DataTable2Json(System.Data.DataTable dt) { System.Text.StringBuilder jsonBuilder = new System.Text.StringBuilder(); jsonBuilder.Append("{"); jsonBuilde

ASP.NET常用技巧方法代码断

1. 打开新的窗口并传送参数:传送参数:response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>") 接收参数:string a = Request.QueryString("id");string b = Request.QueryString

DataTable 转换成 Json的3种方法

在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,Ajax异步请求的数据格式就是Json.鉴于此,我今天来分享将DataTable 转换成 Json的3种方法.换句话说如何在ASP.NET将一个DataTable序列化为 Json数组.或者如何从一个DataTable返回一个Json字符串.这篇文章将采用StringBuilder,JavaScriptSeri

Asp.net 将DataTable 或者DataSet 转换为Json 格式

Web 开发中,将从数据库中取到的数据直接转换为 Json 格式的数据,在前台通过Ajax 无刷新显示在界面上,下面提供将DataTable 或者DataSet 转换为Json 的方法 /// <summary> /// DataTable 转换成Json 操作类 /// </summary> public static class ConvertJson { #region DataSet转换为Json /// <summary> /// DataSet转换为Json

js 时间常用处理方法

众所周知,JavaScript核心包含Data()构造函数,用来创建表示时间和日期的对象.如果给大家分享的是整篇的api,想必大家都没有什么看的欲望,如果你还对Data对象不是很了解,请先移步陪你读书 今天主要跟大家梳理一下,常用的时间.日期处理方法,方便大家使用和理解 格式化时间 老生常谈,大概会这么写 1234567891011 var format = function (time) { var y = time.getFullYear(); //getFullYear方法以四位数字返回年

Datatable/Dataset 转 JSON方法

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Text; /// <summary> ///DataHelper 的摘要说明 /// </summary> public class DataHelper { public DataHelper() { // //TODO: 在此处添加构造函数逻辑

Asp.net C# 使用Newtonsoft.Json 实现DataTable转Json格式数据

1.这里下载:http://www.newtonsoft.com/products/json/ 安装:    1.解压下载文件,得到Newtonsoft.Json.dll    2.在项目中添加引用 2.引入命名空间 using Newtonsoft.Json; using Newtonsoft.Json.Converters; 3.把datatable转换成json格式 public string GetAllCategory() { string result = ""; Data

DataTable转为JSON数据格式代码

public class DataTableConvertJson { #region dataTable转换成Json格式 /// <summary> /// dataTable转换成Json格式 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static string DataTable2Json(Data

C# DataTable 转换成JSON数据

原文:C# DataTable 转换成JSON数据 using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Web; using System.Web.Script.Serialization; namespace WsDemo { public class DataTableConvertJson { #region