随笔 - 1330  文章 - 1  评论 - 378  阅读 - 482万 
复制代码
 public static string CreateJsonParameters(DataTable dt)
        {
            
/**//**/
            
/**//* /****************************************************************************
          * Without goingin to the depth of the functioning of this Method, i will try to give an overview
          * As soon as this method gets a DataTable it starts to convert it into JSON String,
          * it takes each row and in each row it grabs the cell name and its data.
          * This kind of JSON is very usefull when developer have to have Column name of the .
          * Values Can be Access on clien in this way. OBJ.HEAD[0].<ColumnName>
          * NOTE: One negative point. by this method user will not be able to call any cell by its index.
         * ************************************************************************
*/
            StringBuilder JsonString 
= new StringBuilder();
            
//Exception Handling        
            if (dt != null && dt.Rows.Count > 0)
            {
                JsonString.Append(
"");
                JsonString.Append(
"\"T_blog\":[ ");
                
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(
"\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\",");
                        }
                        
else if (j == dt.Columns.Count - 1)
                        {
                            JsonString.Append(
"\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\"");
                        }
                    }
                    
/**//**/
                    
/**//*end Of String*/
                    
if (i == dt.Rows.Count - 1)
                    {
                        JsonString.Append(
"");
                    }
                    
else
                    {
                        JsonString.Append(
"}, ");
                    }
                }
                JsonString.Append(
"]}");
                
return JsonString.ToString();
            }
            
else
            {
                
return null;
            }
        }
复制代码

效果图如下:
复制代码
{"T_blog":
  [
   {
"id":"14","title":"北京奥运开幕式","addtime":"2008-08-08"},
   {
"id":"15","title":"网络文化","addtime":"2008-09-12"},
   {
"id":"17","title":"北京下雨了","addtime":"2008-09-19"},
   {
"id":"21","title":"深圳地铁通了","addtime":"2008-09-25"}
  ]
}
复制代码

 

===================================================

 

复制代码
代码
    /// <summary>
    
/// 将一个数据表转换成一个JSON字符串,在客户端可以直接转换成二维数组。
    
/// </summary>
    
/// <param name="source">需要转换的表。</param>
    
/// <returns></returns>
    public static string DataTableToJson(DataTable source)
    {
        
if (source.Rows.Count == 0)
            
return "";
        StringBuilder sb 
= new StringBuilder("[");
        
foreach (DataRow row in source.Rows)
        {
            sb.Append(
"[");
            
for (int i = 0; i < source.Columns.Count; i++)
            {
                sb.Append(
'"' + row[i].ToString() + "\",");
            }
            sb.Remove(sb.Length 
- 11);
            sb.Append(
"],");
        }
        sb.Remove(sb.Length 
- 11);
        sb.Append(
"]");
        
return sb.ToString();
    }


    
/// <summary>
    
/// 反回JSON数据到前台
    
/// </summary>
    
/// <param name="dt">数据表</param>
    
/// <returns>JSON字符串</returns>
    public string CreateJsonParameters(DataTable dt)
    {
        StringBuilder JsonString 
= new StringBuilder();
        
//Exception Handling        
        if (dt != null && dt.Rows.Count > 0)
        {
            JsonString.Append(
"");
            JsonString.Append(
"\"TableInfo\":[ ");
            
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(
"\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\",");
                    }
                    
else if (j == dt.Columns.Count - 1)
                    {
                        JsonString.Append(
"\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\"");
                    }
                }
                
/**/
                
/*end Of String*/
                
if (i == dt.Rows.Count - 1)
                {
                    JsonString.Append(
"");
                }
                
else
                {
                    JsonString.Append(
"}, ");
                }
            }
            JsonString.Append(
"]}");
            
return JsonString.ToString();
        }
        
else
        {
            
return null;
        }
    }
复制代码

 

 

posted on   钱途无梁  阅读(8860)  评论(1编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示