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();
|
}
|
}
本文介绍了一种将DataTable和泛型列表转换为JSON格式的方法。通过两个静态方法实现:一是将DataTable转换为JSON字符串;二是将泛型列表转换为JSON字符串。这些方法在Web应用中非常实用,便于前后端的数据交互。
106

被折叠的 条评论
为什么被折叠?



