1. DataTable表数据转为List<Dictionary<string, object>>类型数据
public static List<Dictionary<string, object>> DataTableToDictionary(DataTable dt)
{
List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
foreach (DataRow row in dt.Rows)
{
Dictionary<string, object> dictionary = new Dictionary<string, object>();
foreach (DataColumn column in dt.Columns)
{
dictionary.Add(column.ColumnName, row[column].ToString());
}
list.Add(dictionary);
}
return list;
}
2.DataTable数据转为Json类型数据
public static string ToJson(DataTable dt)
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("[");
DataRowCollection rows = dt.Rows;
for (int i = 0; i < rows.Count; i++)
{
stringBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
string columnName = dt.Columns[j].ColumnName;
string str = rows[i][j].ToString();
Type dataType = dt.Columns[j].DataType;
stringBuilder.Append("\"" + columnName + "\":");
str = StringFormat(str, dataType);
if (j < dt.Columns.Count - 1)
{
stringBuilder.Append(str + ",");
}
else
{
stringBuilder.Append(str);
}
}
stringBuilder.Append("},");
}
stringBuilder.Remove(stringBuilder.Length - 1, 1);
stringBuilder.Append("]");
return stringBuilder.ToString();
}
public static string ToJson(DataTable dt, string jsonName)
{
StringBuilder stringBuilder = new StringBuilder();
if (string.IsNullOrEmpty(jsonName))
{
jsonName = dt.TableName;
}
stringBuilder.Append("{\"" + jsonName + "\":[");
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
stringBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
Type type = dt.Rows[i][j].GetType();
stringBuilder.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + StringFormat(dt.Rows[i][j].ToString(), type));
if (j < dt.Columns.Count - 1)
{
stringBuilder.Append(",");
}
}
stringBuilder.Append("}");
if (i < dt.Rows.Count - 1)
{
stringBuilder.Append(",");
}
}
}
stringBuilder.Append("]}");
return stringBuilder.ToString();
}
3. DataSet数据转为Json类型数据
public static string ToJson(DataSet dataSet)
{
string text = "{";
foreach (DataTable table in dataSet.Tables)
{
text = text + "\"" + table.TableName + "\":" + ToJson(table) + ",";
}
text = text.TrimEnd(',');
return text + "}";
}
4. List<>数据转为Json类型数据
public static string ListToJson<T>(IList<T> list)
{
object obj = list[0];
return ListToJson(list, obj.GetType().Name);
}
public static string ListToJson<T>(IList<T> list, string jsonName)
{
StringBuilder stringBuilder = new StringBuilder();
if (string.IsNullOrEmpty(jsonName))
{
jsonName = list[0].GetType().Name;
}
stringBuilder.Append("{\"" + jsonName + "\":[");
if (list.Count > 0)
{
for (int i = 0; i < list.Count; i++)
{
PropertyInfo[] properties = Activator.CreateInstance<T>().GetType().GetProperties();
stringBuilder.Append("{");
for (int j = 0; j < properties.Length; j++)
{
Type type = properties[j].GetValue(list[i], null).GetType();
stringBuilder.Append("\"" + properties[j].Name.ToString() + "\":" + StringFormat(properties[j].GetValue(list[i], null).ToString(), type));
if (j < properties.Length - 1)
{
stringBuilder.Append(",");
}
}
stringBuilder.Append("}");
if (i < list.Count - 1)
{
stringBuilder.Append(",");
}
}
}
stringBuilder.Append("]}");
return stringBuilder.ToString();
}
5. IEnumerable数据转为Json类型数据
public static string ToJson(IEnumerable array)
{
string text = "[";
foreach (object item in array)
{
text = text + ToJson(item) + ",";
}
text.Remove(text.Length - 1, text.Length);
return text + "]";
}
public static string ToArrayString(IEnumerable array)
{
string text = "[";
foreach (object item in array)
{
text = ToJson(item.ToString()) + ",";
}
text.Remove(text.Length - 1, text.Length);
return text + "]";
}