• ASP.NET之JSONHelper操作


    转自:http://www.cnblogs.com/PEPE/archive/2012/02/13/Pepe_Yu.html

    之前说到了Ext.Net中GridPanel行取值的问题(Ext.Net开发_GridPanel行选中取值),涉及到checkBox操作时,要留个心眼注意下取值的区别!返回值是Json格式。 现在用到了Json,就想自己也整一个Josn帮助类。在线帮助的资料很多,在巨人的身上东凑西凑也凑一个用用。   

    一、介绍

      JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集

      方法有多种,我这边用到是DataContractJsonSerializer类,官方解释:“NET Framework 4 .NET Framework 3.5 Silverlight 将对象序列化为 JavaScript 对象表示法 (JSON),并将 JSON 数据反序列化为对象”。

      其命名空间如下:

      注意:如果是.NET Framework 3.5  光引用了“System.Runtime.Serialization”了这个还不行。运行时会发现:

    所以还要引用下“System.ServiceModel.Web”即可。   .NET Framework 4则在System.Runtime.Serialization下。

    二、对JSON数据操作

     源码:

    复制代码
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.IO;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Web.Script.Serialization;
    using System.Collections.Generic;
    using System.Runtime.Serialization.Json;
    namespace WebUI.CommonClass
    {
    public class JSONHelper
    {

    /// <summary>
    /// JSON序列化
    /// </summary>
    public static string JsonSerializer<T>(T t)
    {
    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
    MemoryStream ms = new MemoryStream();
    ser.WriteObject(ms, t);
    string jsonString = Encoding.UTF8.GetString(ms.ToArray());
    ms.Close();
    //替换Json的Date字符串
    string p = @"\/Date((d+)+d+)\/";
    MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertJsonDateToDateString);
    Regex reg = new Regex(p);
    jsonString = reg.Replace(jsonString, matchEvaluator);
    return jsonString;
    }

    /// <summary>
    /// JSON反序列化
    /// </summary>
    public static T JsonDeserialize<T>(string jsonString)
    {
    //将"yyyy-MM-dd HH:mm:ss"格式的字符串转为"/Date(1294499956278+0800)/"格式
    string p = @"d{4}-d{2}-d{2}sd{2}:d{2}:d{2}";
    MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertDateStringToJsonDate);
    Regex reg = new Regex(p);
    jsonString = reg.Replace(jsonString, matchEvaluator);
    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
    MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
    T obj = (T)ser.ReadObject(ms);
    return obj;
    }

    /// <summary>
    /// 将Json序列化的时间由/Date(1294499956278+0800)转为字符串
    /// </summary>
    private static string ConvertJsonDateToDateString(Match m)
    {
    string result = string.Empty;
    DateTime dt = new DateTime(1970, 1, 1);
    dt = dt.AddMilliseconds(long.Parse(m.Groups[1].Value));
    dt = dt.ToLocalTime();
    result = dt.ToString("yyyy-MM-dd HH:mm:ss");
    return result;
    }

    /// <summary>
    /// 将时间字符串转为Json时间
    /// </summary>
    private static string ConvertDateStringToJsonDate(Match m)
    {
    string result = string.Empty;
    DateTime dt = DateTime.Parse(m.Groups[0].Value);
    dt = dt.ToUniversalTime();
    TimeSpan ts = dt - DateTime.Parse("1970-01-01");
    result = string.Format("\/Date({0}+0800)\/", ts.TotalMilliseconds);
    return result;
    }
    }
    }
    复制代码


    实验下:

    Product

    复制代码
        public class Product
    {
    public string proName { get ;set ; }
    public decimal proPrice { get; set; }
    public string proAttr { get; set; }
    public string proAddres { get; set; }
    }
    复制代码

    操作

    1:序列化

    复制代码
    Product pro = new Product();
    pro.proAddres = "上海";
    pro.proAttr = "cpu";
    pro.proName = "电脑";
    pro.proPrice = 3680;
    string josn = JSONHelper.JsonSerializer<Product>(pro); //序列化
    Message.ShowAlert("提示", josn);
    复制代码

    效果:


    2,反序列化

    string json = "{"proAddres":"上海","proAttr":"cpu","proName":"电脑","proPrice":3680}";
    Product pro = JSONHelper.JsonDeserialize<Product>(json);


     

      JSONHELP

      

    复制代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Script.Serialization;
    using System.Collections;
    using System.Data;
    using System.Text;
    using System.Reflection;
    using System.Globalization;
    using System.Text.RegularExpressions;
    
    namespace FumaCRM_BS.NewWeb.Common.Class
    {
        public class JsonHelper
        {
            /// <summary>
            /// DataTable转Json
            /// </summary>
            /// <param name="dtb"></param>
            /// <returns></returns>
            public static string Dtb2Json(DataTable dtb)
            {
                JavaScriptSerializer jss = new JavaScriptSerializer();
                ArrayList dic = new ArrayList();
                foreach (DataRow row in dtb.Rows)
                {
                    Dictionary<string, object> drow = new Dictionary<string, object>();
                    foreach (DataColumn col in dtb.Columns)
                    {
                        drow.Add(col.ColumnName, row[col.ColumnName]);
                    }
                    dic.Add(drow);
                }
                return jss.Serialize(dic);
            }
            /// <summary>
            /// Json转DataTable
            /// </summary>
            /// <param name="json"></param>
            /// <returns></returns>
            public static DataTable Json2Dtb(string json)
            {
                JavaScriptSerializer jss = new JavaScriptSerializer();
                ArrayList dic = jss.Deserialize<ArrayList>(json);
                DataTable dtb = new DataTable();
    
                if (dic.Count > 0)
                {
                    foreach (Dictionary<string, object> drow in dic)
                    {
                        if (dtb.Columns.Count == 0)
                        {
                            foreach (string key in drow.Keys)
                            {
                                //if (drow[key].GetType() != null)
                                //    dtb.Columns.Add(key, drow[key].GetType());
                                //else
                                    dtb.Columns.Add(key);
                            }
                        }
    
                        DataRow row = dtb.NewRow();
                        foreach (string key in drow.Keys)
                        {
    
                            row[key] = drow[key];
                        }
                        dtb.Rows.Add(row);
                    }
                }
                return dtb;
            }
    
            public static string DataTable2Json(DataTable dt)
            {
                if (dt == null || dt.Rows.Count == 0)
                    return "[]";
                StringBuilder jsonBuilder = new StringBuilder();
                jsonBuilder.Append("[");
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    jsonBuilder.Append("{");
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        jsonBuilder.Append(""");
                        jsonBuilder.Append(dt.Columns[j].ColumnName);
                        jsonBuilder.Append("":"");
                        string value = dt.Rows[i][j].ToString().Replace("
    ", "").Replace("
    ", "").Replace("	", "").Trim();
                        if (dt.Columns[j].DataType.FullName == "System.DateTime")
                            jsonBuilder.Append(value.Length == 0 ? value : Convert.ToDateTime(value).ToString("yyyy-MM-dd"));
                        else
                            jsonBuilder.Append(value);
                        jsonBuilder.Append("",");
                    }
                    jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
                    jsonBuilder.Append("},");
                }
                jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
                jsonBuilder.Append("]");
                return jsonBuilder.ToString();
            }
    
            #region JqueryEasyUI JSON  Method
            /// <summary>
            /// 生成表单编辑赋值 JSON格式
            /// </summary>
            /// <param name="dt"></param>
            /// <param name="displayCount"></param>
            /// <returns></returns>
            public static string CreateJsonOne(DataTable dt, bool displayCount)
            {
                StringBuilder JsonString = new StringBuilder();
                //Exception Handling        
                if (dt != null && dt.Rows.Count > 0)
                {
    
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        JsonString.Append("{ ");
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            if (j < dt.Columns.Count - 1)
                            {
                                JsonString.Append("ipt_" + dt.Columns[j].ColumnName.ToString().ToLower() + ":" + """ + dt.Rows[i][j].ToString() + "",");
                            }
                            else if (j == dt.Columns.Count - 1)
                            {
                                JsonString.Append("ipt_" + dt.Columns[j].ColumnName.ToString().ToLower() + ":" + """ + dt.Rows[i][j].ToString() + """);
                            }
                        }
    
                        if (i == dt.Rows.Count - 1)
                        {
                            JsonString.Append("} ");
                        }
                        else
                        {
                            JsonString.Append("}, ");
                        }
                    }
    
                    return JsonString.ToString();
                }
                else
                {
                    return null;
                }
    
            }
    
    
            /// <summary>
            /// 将DataTable中的数据转换成JSON格式
            /// </summary>
            /// <param name="dt">数据源DataTable</param>
            /// <param name="displayCount">是否输出数据总条数</param>
            /// <returns></returns>
            public static string CreateJsonParameters(DataTable dt, bool displayCount)
            {
                return CreateJsonParameters(dt, displayCount, dt.Rows.Count);
            }
            /// <summary>
            /// 将DataTable中的数据转换成JSON格式
            /// </summary>
            /// <param name="dt">数据源DataTable</param>
            /// <returns></returns>
            public static string CreateJsonParameters(DataTable dt)
            {
                return CreateJsonParameters(dt, true);
            }
            /// <summary>
            /// 将DataTable中的数据转换成JSON格式
            /// </summary>
            /// <param name="dt">数据源DataTable</param>
            /// <param name="displayCount">是否输出数据总条数</param>
            /// <param name="totalcount">JSON中显示的数据总条数</param>
            /// <returns></returns>
            public static string CreateJsonParameters(DataTable dt, bool displayCount, int totalcount)
            {
                StringBuilder JsonString = new StringBuilder();
                //Exception Handling        
    
                if (dt != null)
                {
                    JsonString.Append("{ ");
                    JsonString.Append(""rows":[ ");
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        JsonString.Append("{ ");
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            if (j < dt.Columns.Count - 1)
                            {
                                //if (dt.Rows[i][j] == DBNull.Value) continue;
                                if (dt.Columns[j].DataType == typeof(bool))
                                {
                                    JsonString.Append(""JSON_" + dt.Columns[j].ColumnName.ToLower() + "":" +
                                                      dt.Rows[i][j].ToString().ToLower() + ",");
                                }
                                else if (dt.Columns[j].DataType == typeof(string))
                                {
                                    JsonString.Append(""JSON_" + dt.Columns[j].ColumnName.ToLower() + "":" + """ +
                                                      dt.Rows[i][j].ToString().Replace(""", "\"") + "",");
                                }
                                else
                                {
                                    JsonString.Append(""JSON_" + dt.Columns[j].ColumnName.ToLower() + "":" + """ + dt.Rows[i][j] + "",");
                                }
                            }
                            else if (j == dt.Columns.Count - 1)
                            {
                                //if (dt.Rows[i][j] == DBNull.Value) continue;
                                if (dt.Columns[j].DataType == typeof(bool))
                                {
                                    JsonString.Append(""JSON_" + dt.Columns[j].ColumnName.ToLower() + "":" +
                                                      dt.Rows[i][j].ToString().ToLower());
                                }
                                else if (dt.Columns[j].DataType == typeof(string))
                                {
                                    JsonString.Append(""JSON_" + dt.Columns[j].ColumnName.ToLower() + "":" + """ +
                                                      dt.Rows[i][j].ToString().Replace(""", "\"") + """);
                                }
                                else
                                {
                                    JsonString.Append(""JSON_" + dt.Columns[j].ColumnName.ToLower() + "":" + """ + dt.Rows[i][j] + """);
                                }
                            }
                        }
                        /*end Of String*/
                        if (i == dt.Rows.Count - 1)
                        {
                            JsonString.Append("} ");
                        }
                        else
                        {
                            JsonString.Append("}, ");
                        }
                    }
                    JsonString.Append("]");
    
                    if (displayCount)
                    {
                        JsonString.Append(",");
    
                        JsonString.Append(""total":");
                        JsonString.Append(totalcount);
                    }
    
                    JsonString.Append("}");
                    return JsonString.ToString().Replace("
    ", "");
                }
                else
                {
                    return null;
                }
            }
    
            #region object 2 json
    
            private static void WriteDataRow(StringBuilder sb, DataRow row)
            {
                sb.Append("{");
                foreach (DataColumn column in row.Table.Columns)
                {
                    sb.AppendFormat(""{0}":", column.ColumnName);
                    WriteValue(sb, row[column]);
                    sb.Append(",");
                }
                // Remove the trailing comma.
                if (row.Table.Columns.Count > 0)
                {
                    --sb.Length;
                }
                sb.Append("}");
            }
    
            private static void WriteDataSet(StringBuilder sb, DataSet ds)
            {
                sb.Append("{"Tables":{");
                foreach (DataTable table in ds.Tables)
                {
                    sb.AppendFormat(""{0}":", table.TableName);
                    WriteDataTable(sb, table);
                    sb.Append(",");
                }
                // Remove the trailing comma.
                if (ds.Tables.Count > 0)
                {
                    --sb.Length;
                }
                sb.Append("}}");
            }
    
            private static void WriteDataTable(StringBuilder sb, DataTable table)
            {
                sb.Append("{"Rows":[");
                foreach (DataRow row in table.Rows)
                {
                    WriteDataRow(sb, row);
                    sb.Append(",");
                }
                // Remove the trailing comma.
                if (table.Rows.Count > 0)
                {
                    --sb.Length;
                }
                sb.Append("]}");
            }
    
            private static void WriteEnumerable(StringBuilder sb, IEnumerable e)
            {
                bool hasItems = false;
                sb.Append("[");
                foreach (object val in e)
                {
                    WriteValue(sb, val);
                    sb.Append(",");
                    hasItems = true;
                }
                // Remove the trailing comma.
                if (hasItems)
                {
                    --sb.Length;
                }
                sb.Append("]");
            }
    
            private static void WriteHashtable(StringBuilder sb, IDictionary e)
            {
                bool hasItems = false;
                sb.Append("{");
                foreach (string key in e.Keys)
                {
                    sb.AppendFormat(""{0}":", key.ToLower());
                    WriteValue(sb, e[key]);
                    sb.Append(",");
                    hasItems = true;
                }
                // Remove the trailing comma.
                if (hasItems)
                {
                    --sb.Length;
                }
                sb.Append("}");
            }
    
            private static void WriteObject(StringBuilder sb, object o)
            {
                MemberInfo[] members = o.GetType().GetMembers(BindingFlags.Instance | BindingFlags.Public);
                sb.Append("{");
                bool hasMembers = false;
                foreach (MemberInfo member in members)
                {
                    bool hasValue = false;
                    object val = null;
                    if ((member.MemberType & MemberTypes.Field) == MemberTypes.Field)
                    {
                        FieldInfo field = (FieldInfo)member;
                        val = field.GetValue(o);
                        hasValue = true;
                    }
                    else if ((member.MemberType & MemberTypes.Property) == MemberTypes.Property)
                    {
                        PropertyInfo property = (PropertyInfo)member;
                        if (property.CanRead && property.GetIndexParameters().Length == 0)
                        {
                            val = property.GetValue(o, null);
                            hasValue = true;
                        }
                    }
                    if (hasValue)
                    {
                        sb.Append(""");
                        sb.Append(member.Name);
                        sb.Append("":");
                        WriteValue(sb, val);
                        sb.Append(",");
                        hasMembers = true;
                    }
                }
                if (hasMembers)
                {
                    --sb.Length;
                }
                sb.Append("}");
            }
    
            private static void WriteString(StringBuilder sb, IEnumerable s)
            {
                sb.Append(""");
                foreach (char c in s)
                {
                    switch (c)
                    {
                        case '"':
                            sb.Append("\"");
                            break;
                        case '\':
                            sb.Append("\\");
                            break;
                        case '':
                            sb.Append("\b");
                            break;
                        case 'f':
                            sb.Append("\f");
                            break;
                        case '
    ':
                            sb.Append("\n");
                            break;
                        case '
    ':
                            sb.Append("\r");
                            break;
                        case '	':
                            sb.Append("\t");
                            break;
                        default:
                            int i = c;
                            if (i < 32 || i > 127)
                            {
                                sb.AppendFormat("\u{0:X04}", i);
                            }
                            else
                            {
                                sb.Append(c);
                            }
                            break;
                    }
                }
                sb.Append(""");
            }
    
            public static void WriteValue(StringBuilder sb, object val)
            {
                if (val == null || val == DBNull.Value)
                {
                    sb.Append("null");
                }
                else if (val is string || val is Guid)
                {
                    WriteString(sb, val.ToString());
                }
                else if (val is bool)
                {
                    sb.Append(val.ToString().ToLower());
                }
                else if (val is double ||
                         val is float ||
                         val is long ||
                         val is int ||
                         val is short ||
                         val is byte ||
                         val is decimal)
                {
                    sb.AppendFormat(CultureInfo.InvariantCulture.NumberFormat, "{0}", val);
                }
                else if (val.GetType().IsEnum)
                {
                    sb.Append((int)val);
                }
                else if (val is DateTime)
                {
                    sb.Append("new Date("");
                    sb.Append(((DateTime)val).ToString("MMMM, d yyyy HH:mm:ss",
                                                        new CultureInfo("en-US", false).DateTimeFormat));
                    sb.Append("")");
                }
                else if (val is DataSet)
                {
                    WriteDataSet(sb, val as DataSet);
                }
                else if (val is DataTable)
                {
                    WriteDataTable(sb, val as DataTable);
                }
                else if (val is DataRow)
                {
                    WriteDataRow(sb, val as DataRow);
                }
                else if (val is Hashtable)
                {
                    WriteHashtable(sb, val as Hashtable);
                }
                else if (val is IEnumerable)
                {
                    WriteEnumerable(sb, val as IEnumerable);
                }
                else
                {
                    WriteObject(sb, val);
                }
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="o"></param>
            /// <returns></returns>
            public static string Convert2Json(object o)
            {
                StringBuilder sb = new StringBuilder();
                WriteValue(sb, o);
                return sb.ToString();
            }
    
            #endregion
            #endregion
    
            /// <summary>
            /// 转换对象为JSON格式数据
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="obj">对象</param>
            /// <returns>字符格式的JSON数据</returns>
            public static string GetJSON<T>(object obj)
            {
                string result = String.Empty;
                try
                {
                    System.Runtime.Serialization.Json.DataContractJsonSerializer serializer =
                    new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
                    using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                    {
                        serializer.WriteObject(ms, obj);
                        result = System.Text.Encoding.UTF8.GetString(ms.ToArray());
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                return result;
            }
            /// <summary>
            /// 转换List<T>的数据为JSON格式
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="vals">列表值</param>
            /// <returns>JSON格式数据</returns>
            public static string JSON<T>(List<T> vals)
            {
                System.Text.StringBuilder st = new System.Text.StringBuilder();
                try
                {
                    System.Runtime.Serialization.Json.DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
    
                    foreach (T city in vals)
                    {
                        using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                        {
                            s.WriteObject(ms, city);
                            st.Append(System.Text.Encoding.UTF8.GetString(ms.ToArray()));
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
    
                return st.ToString();
            }
            /// <summary>
            /// JSON格式字符转换为T类型的对象
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="jsonStr"></param>
            /// <returns></returns>
            public static T ParseFormByJson<T>(string jsonStr)
            {
                T obj = Activator.CreateInstance<T>();
                using (System.IO.MemoryStream ms =
                new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonStr)))
                {
                    System.Runtime.Serialization.Json.DataContractJsonSerializer serializer =
                    new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
                    return (T)serializer.ReadObject(ms);
                }
            }
    
    
            /// <summary>
            /// 将获取的Json数据转换为DataTable
            /// </summary>
            /// <param name="strJson">Json字符串</param>
            /// <returns></returns>
            public static DataTable JsonToDataTable(string strJson)
            {
                //取出表名   
                var rg = new Regex(@"(?<={)[^:]+(?=:[)", RegexOptions.IgnoreCase);
                string strName = rg.Match(strJson).Value;
                DataTable tb = null;
                //去除表名   
                strJson = strJson.Substring(strJson.IndexOf("[") + 1);
                strJson = strJson.Substring(0, strJson.IndexOf("]"));
    
                //获取数据   
                rg = new Regex(@"(?<={)[^}]+(?=})");
                MatchCollection mc = rg.Matches(strJson);
                for (int i = 0; i < mc.Count; i++)
                {
                    string strRow = mc[i].Value;
                    string[] strRows = strRow.Split(',');
    
                    //创建表   
                    if (tb == null)
                    {
                        tb = new DataTable();
                        tb.TableName = strName;
                        foreach (string str in strRows)
                        {
                            var dc = new DataColumn();
                            string[] strCell = str.Split(':');
                            dc.ColumnName = strCell[0].Replace(""", "");// strCell[0];
                            tb.Columns.Add(dc);
                        }
                        tb.AcceptChanges();
                    }
    
                    //增加内容   
                    DataRow dr = tb.NewRow();
                    for (int r = 0; r < strRows.Length; r++)
                    {
                        dr[r] = strRows[r].Split(':')[1].Trim().Replace("", ",").Replace("", ":").Replace(""", "");
                    }
                    tb.Rows.Add(dr);
                    tb.AcceptChanges();
                }
    
                return tb;
            }
    
    
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="strJson"></param>
            /// <param name="symbol"></param>
            /// <returns></returns>
            public static DataTable JsonToDataTable(string strJson, string symbol)
            {
                //取出表名   
                var rg = new Regex(@"(?<={)[^:]+(?=:[)", RegexOptions.IgnoreCase);
                string strName = rg.Match(strJson).Value;
                DataTable tb = null;
                //去除表名   
                strJson = strJson.Substring(strJson.IndexOf("[") + 1);
                strJson = strJson.Substring(0, strJson.IndexOf("]"));
    
                //获取数据   
                rg = new Regex(@"(?<={)[^}]+(?=})");
                MatchCollection mc = rg.Matches(strJson);
                for (int i = 0; i < mc.Count; i++)
                {
                    string strRow = mc[i].Value;
                    string[] strRows = strRow.Replace(symbol, "|").Split('|');// (symbol);
    
                    //创建表   
                    if (tb == null)
                    {
                        tb = new DataTable();
                        tb.TableName = strName;
                        foreach (string str in strRows)
                        {
                            var dc = new DataColumn();
                            string[] strCell = str.Split(':');
                            dc.ColumnName = strCell[0].Replace(""", "");// strCell[0];
                            tb.Columns.Add(dc);
                        }
                        tb.AcceptChanges();
                    }
    
                    //增加内容   
                    DataRow dr = tb.NewRow();
                    for (int r = 0; r < strRows.Length; r++)
                    {
                        dr[r] = strRows[r].Split(':')[1].Trim().Replace("", ",").Replace("", ":").Replace(""", "");
                    }
                    tb.Rows.Add(dr);
                    tb.AcceptChanges();
                }
    
                return tb;
            }
            /// <summary>     
            /// dataTable转换成Json格式     
            /// </summary>     
            /// <param name="dt"></param>     
            /// <returns></returns>     
            public static string ToJson(DataTable dt)
            {
                StringBuilder jsonBuilder = new StringBuilder();
                jsonBuilder.Append("{"");
                jsonBuilder.Append(dt.TableName);
                jsonBuilder.Append("":[");
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    jsonBuilder.Append("{");
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        jsonBuilder.Append(""");
                        jsonBuilder.Append(dt.Columns[j].ColumnName);
                        jsonBuilder.Append("":"");
                        jsonBuilder.Append(dt.Rows[i][j].ToString());
                        jsonBuilder.Append("",");
                    }
                    jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
                    jsonBuilder.Append("},");
                }
                jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
                jsonBuilder.Append("]");
                jsonBuilder.Append("}");
                return jsonBuilder.ToString();
            }
        }
    }
    复制代码


     


    作者:PEPE 
    出处:http://pepe.cnblogs.com/ 
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

     
  • 相关阅读:
    2017暑期集训Day 4
    2017暑期集训Day 5
    2017暑期集训Day 3
    Codeforces Round #433
    校内集训(20170906)
    校内集训(20170903)
    培训补坑(day10:双指针扫描+矩阵快速幂)
    培训补坑(day8:树上倍增+树链剖分)
    培训补坑(day7:线段树的区间修改与运用)(day6是测试,测试题解以后补坑QAQ)
    培训补坑(day5:最小生成树+负环判断+差分约束)
  • 原文地址:https://www.cnblogs.com/cugwx/p/3575610.html
Copyright © 2020-2023  润新知