一个datatable转为json的函数

代码
 public 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(
"Head:[ ");
            
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;
        }
    }

转换数据后的形式类似于:

 

{ Head:[ { ID:"80246",EmployeeNameCn:"张三"}, { ID:"80250",EmployeeNameCn:"李四"}, { ID:"80309",EmployeeNameCn:"王五"}, { ID:"80360",EmployeeNameCn:"赵六"}]}

 

 

posted @ 2009-12-03 22:12  ForFreeDom  阅读(195)  评论(0)    收藏  举报