将DataTable或Ilist<>转换成JSON格式

using System;
using System.Data;
using System.Text;
using System.Collections.Generic;
using System.Reflection;

/// <summary>
/// 将DataTable或Ilist<>转换成JSON格式
/// </summary>
public class ToJson
{
    
public ToJson()
    {

    }

//DataTable转成Json
    public static string DataTableToJson(string jsonName, DataTable dt)
    {
        StringBuilder Json 
= new StringBuilder();
        Json.Append(
"{\"" + jsonName + "\":[");
        
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() + "\"");
                    
if (j < dt.Columns.Count - 1)
                    {
                        Json.Append(
",");
                    }
                }
                Json.Append(
"}");
                
if (i < dt.Rows.Count - 1)
                {
                    Json.Append(
",");
                }
            }
        }
        Json.Append(
"]}");
        
return Json.ToString();
    }

//List转成json
    public static string ObjectToJson<T>(string jsonName, IList<T> IL)
    {
        StringBuilder Json 
= new StringBuilder();
        Json.Append(
"{\"" + jsonName + "\":[");
        
if (IL.Count > 0)
        {
            
for (int i = 0; i < IL.Count; i++)
            {
                T obj 
= Activator.CreateInstance<T>();
                Type type 
= obj.GetType();
                PropertyInfo[] pis 
= type.GetProperties();
                Json.Append(
"{");
                
for (int j = 0; j < pis.Length; j++)
                {
                    Json.Append(
"\"" + pis[j].Name.ToString() + "\":\"" + pis[j].GetValue(IL[i], null) + "\"");
                    
if (j < pis.Length - 1)
                    {
                        Json.Append(
",");
                    }
                }
                Json.Append(
"}");
                
if (i < IL.Count - 1)
                {
                    Json.Append(
",");
                }
            }
        }
        Json.Append(
"]}");
        
return Json.ToString();
    }
}

程序员搜索工具:http://www.openso.net/

原文地址:https://www.cnblogs.com/nba4523/p/1368858.html