• JSON与DataTable互转


    JSON与DataTable互转直接互转处理

    public static string DataTableToJson(DataTable dt)
            {
                StringBuilder Json = new StringBuilder();
                Json.Append("[");
                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        Json.Append("{");
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            //Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":\"" + dt.Rows[i][j].ToString() + "\"");
                            Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + dt.Rows[i][j].ToString());
    
                            if (j < dt.Columns.Count - 1)
                            {
                                Json.Append(",");
                            }
                        }
                        Json.Append("}");
                        if (i < dt.Rows.Count - 1)
                        {
                            Json.Append(",");
                        }
                    }
                }
                Json.Append("]");
                return Json.ToString();
            }
    public static DataTable JsonToDataTable(string strJson)
             {
                 //取出表名  
                  /*
                 Regex 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("]"));
                 */
    
                 DataTable tb = null;
                 //获取数据  
                Regex 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 = "json";
                         foreach (string str in strRows)
                         {
                             DataColumn dc = new DataColumn();
                             string[] strCell = str.Split(':');
                             dc.ColumnName = strCell[0].ToString();
                             tb.Columns.Add(dc);
                         }
                         tb.AcceptChanges();
                     }
    
                     //增加内容  
                    DataRow dr = tb.NewRow();
                     for (int r = 0; r < strRows.Length; r++)
                     {
                         string ls_data;
                         ls_data=strRows[r];
    
                         ls_data=strRows[r].Split(':')[1].Trim();
    
                         ls_data=ls_data.Replace("", ",");
                         ls_data=ls_data.Replace("", ":");
                         ls_data=ls_data.Replace("//","");
    
                         dr[r] =ls_data;
                         
                     }
                     tb.Rows.Add(dr);
                     tb.AcceptChanges();
                 }
    
                 return tb;
             }
     

    测试了下 还比较结实的!

  • 相关阅读:
    ES6 class -- Class 的基本语法
    ES6 Promise --回调与Promise的对比、信任问题、错误处理、Promise的状态、以及Promise对象的常用方法
    移动端调试,手机缓存清不掉
    JAR 介绍-百度百科
    一致性哈希的基本概念
    Java线程池的配置
    java多线程面试题整理及答案(2018年)
    Java多线程面试题整理
    IntelliJ Idea 常用快捷键
    RESTful规范
  • 原文地址:https://www.cnblogs.com/allan5204/p/2832846.html
Copyright © 2020-2023  润新知