zoukankan      html  css  js  c++  java
  • DataTable转换成Json格式

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.Write(DataTableToJson(MyTable()));
                Console.Read();
            }
    
             //"{\"totalpage\":\"10\",\"data\":[\"pic1\",\"pic2\",\"pic\"]}"
             // {totalpage:10,data:[pic1,pic2,pic]}
            public static string DataTableToJson(DataTable dt)
            {
                string columnFirst = "";
                List<string> result=new List<string>();
                StringBuilder Json = new StringBuilder();
                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        if (columnFirst != dt.Rows[i][0].ToString())
                        {
                            if (i != 0)
                            {
                                AddNewJson(Json, result, dt);
                            }
                            columnFirst = dt.Rows[i][0].ToString();
                            result = new List<string>();
                            for (int k = 0; k < dt.Columns.Count; k++)
                            {
                                result.Add("\"" + dt.Rows[i][k].ToString() + "\"");
                            }
                        }
                        else
                        {
                            for (int k = 0; k < dt.Columns.Count; k++)
                            {
                                if (!result[k].Contains(dt.Rows[i][k].ToString()))
                                {
                                    result[k] += ",\"" + dt.Rows[i][k].ToString()+"\"";
                                }
                            }
                        }
                        if (i == dt.Rows.Count - 1)
                        {
                            AddNewJson(Json, result, dt);
                        }
                    }
                }
                return Json.ToString();
            }
    
            private static void AddNewJson(StringBuilder Json,List<string> result,DataTable dt)
            {
                Json.Append("{");
                for (int i = 0; i < dt.Columns.Count;i++ )
                {
                    Json.Append("\"");
                    Json.Append(dt.Columns[i].ColumnName);
                    Json.Append("\":");
                    if (result[i].Contains(","))
                    {
                        Json.Append("[");
                        Json.Append(result[i]);
                        if (i == dt.Columns.Count - 1)
                        {
                            Json.Append("]");
                        }
                        else
                        {
                            Json.Append("],");
                        }
                    }
                    else
                    {
                        Json.Append(result[i]);
                        if (i != dt.Columns.Count - 1)
                        {
                            Json.Append(",");
                        }
                    }
                }
                Json.Append("}");
            }
    
            private static DataTable MyTable()
            {
                DataTable dt = new DataTable();
                DataColumn dc = new DataColumn();
                dc.ColumnName = "ID";
                dc.DataType = typeof(String);
                dt.Columns.Add(dc);
                dc = new DataColumn();
                dc.ColumnName = "Name";
                dc.DataType = typeof(String);
                dt.Columns.Add(dc);
                dc = new DataColumn();
                dc.ColumnName = "Score";
                dc.DataType = typeof(String);
                dt.Columns.Add(dc);
                DataRow dr = dt.NewRow();
                dr["ID"] = "01";
                dr["Name"] = "Jin";
                dr["Score"] = "10";
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["ID"] = "01";
                dr["Name"] = "Xin";
                dr["Score"] = "20";
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["ID"] = "01";
                dr["Name"] = "Xu";
                dr["Score"] = "30";
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["ID"] = "02";
                dr["Name"] = "Xin";
                dr["Score"] = "30";
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["ID"] = "02";
                dr["Name"] = "Jin";
                dr["Score"] = "30";
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["ID"] = "02";
                dr["Name"] = "Jin";
                dr["Score"] = "30";
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["ID"] = "02";
                dr["Name"] = "Jin";
                dr["Score"] = "40";
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["ID"] = "02";
                dr["Name"] = "Jin";
                dr["Score"] = "30";
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["ID"] = "02";
                dr["Name"] = "Jin";
                dr["Score"] = "30";
                dt.Rows.Add(dr);
                return dt;
            }
        }
    }
    

     显示结果

  • 相关阅读:
    解决方案:ubuntu无法获得锁,无法管理目录
    ACM经典题目——校门外的树
    【动态规划】01背包问题(通俗易懂,超基础讲解)
    从编程实现角度学习 Faster R-CNN(附极简实现)
    git clone 时,出现‘fatal: HTTP request failed‘
    git clone出现 fatal: unable to access 'https://github.com/...'的解决办法(亲测有效)
    Qt类库的模块
    java 中的 池
    sql 语句
    httpClient 发送http请求
  • 原文地址:https://www.cnblogs.com/jin256/p/2258644.html
Copyright © 2011-2022 走看看