C#中的DataSet、string、DataTable 、对象转换成Json
2023-09-14 09:03:14 时间
/// returns /returns
private static string ListToJson T (IList T list, string JsonName)
StringBuilder Json = new StringBuilder();
if (string.IsNullOrEmpty(JsonName))
JsonName = list[0].GetType().Name;
Json.Append("{\"" + JsonName + "\":[");
if (list.Count 0)
for (int i = 0; i list.Count; i++)
T obj = Activator.CreateInstance T
PropertyInfo[] pi = obj.GetType().GetProperties();
Json.Append("{");
for (int j = 0; j pi.Length; j++)
Type type = pi[j].GetValue(list[i], null).GetType();
Json.Append("\"" + pi[j].Name.ToString() + "\":" + StringFormat(pi[j].GetValue(list[i], null).ToString(), type));
if (j pi.Length - 1)
Json.Append(",");
Json.Append("}");
if (i list.Count - 1)
Json.Append(",");
Json.Append("]}");
return Json.ToString();
#endregion
#region 对象转换为Json
/// summary
/// 对象转换为json
/// /summary
/// param name="jsonObject" json对象 /param
/// returns json字符串 /returns
public static string ToJson(object jsonObject)
string jsonString = "{";
PropertyInfo[] propertyInfo = jsonObject.GetType().GetProperties();
for (int i = 0; i propertyInfo.Length; i++)
object objectValue = propertyInfo[i].GetGetMethod().Invoke(jsonObject, null);
string value = string.Empty;
if (objectValue is DateTime || objectValue is Guid || objectValue is TimeSpan)
value = "" + objectValue.ToString() + "";
else if (objectValue is string)
value = "" + ToJson(objectValue.ToString()) + "";
else if (objectValue is IEnumerable)
value = ToJson((IEnumerable)objectValue);
else
value = ToJson(objectValue.ToString());
jsonString += "\"" + ToJson(propertyInfo[i].Name) + "\":" + value + ",";
jsonString.Remove(jsonString.Length - 1, jsonString.Length);
return jsonString + "}";
#endregion
#region 对象集合转换为json
/// summary
/// 对象集合转换为json
/// /summary
/// param name="array" 对象集合 /param
/// returns json字符串 /returns
public static string ToJson(IEnumerable array)
string jsonString = "{";
foreach (object item in array)
jsonString += ToJson(item) + ",";
jsonString.Remove(jsonString.Length - 1, jsonString.Length);
return jsonString + "]";
#endregion
#region 普通集合转换Json
/// summary
/// 普通集合转换Json
/// /summary
/// param name="array" 集合对象 /param
/// returns Json字符串 /returns
public static string ToArrayString(IEnumerable array)
string jsonString = "[";
foreach (object item in array)
jsonString = ToJson(item.ToString()) + ",";
jsonString.Remove(jsonString.Length - 1, jsonString.Length);
return jsonString + "]";
#endregion
#region DataSet转换为Json
/// summary
/// DataSet转换为Json
/// /summary
/// param name="dataSet" DataSet对象 /param
/// returns Json字符串 /returns
public static string ToJson(DataSet dataSet)
string jsonString = "{";
foreach (DataTable table in dataSet.Tables)
jsonString += "\"" + table.TableName + "\":" + ToJson(table) + ",";
jsonString = jsonString.TrimEnd(,);
return jsonString + "}";
#endregion
#region Datatable转换为Json
/// summary
/// Datatable转换为Json
/// /summary
/// param name="dt" Datatable对象 /param
/// returns Json字符串 /returns
public static string ToJson(DataTable dt)
StringBuilder jsonString = new StringBuilder();
jsonString.Append("[");
DataRowCollection drc = dt.Rows;
for (int i = 0; i drc.Count; i++)
jsonString.Append("{");
for (int j = 0; j dt.Columns.Count; j++)
string strKey = dt.Columns[j].ColumnName;
string strValue = drc[i][j].ToString();
Type type = dt.Columns[j].DataType;
jsonString.Append("\"" + strKey + "\":");
strValue = StringFormat(strValue, type);
if (j dt.Columns.Count - 1)
jsonString.Append(strValue + ",");
else
jsonString.Append(strValue);
jsonString.Append("},");
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]");
return jsonString.ToString();
/// summary
/// DataTable转换为Json
/// /summary
public static string ToJson(DataTable dt, string jsonName)
StringBuilder Json = new StringBuilder();
if (string.IsNullOrEmpty(jsonName))
jsonName = dt.TableName;
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++)
Type type = dt.Rows[i][j].GetType();
Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + StringFormat(dt.Rows[i][j].ToString(), type));
if (j dt.Columns.Count - 1)
Json.Append(",");
Json.Append("}");
if (i dt.Rows.Count - 1)
Json.Append(",");
Json.Append("]}");
return Json.ToString();
#endregion
#region DataReader转换为Json
/// summary
/// DataReader转换为Json
/// /summary
/// param name="dataReader" DataReader对象 /param
/// returns Json字符串 /returns
public static string ToJson(DbDataReader dataReader)
StringBuilder jsonString = new StringBuilder();
jsonString.Append("[");
while (dataReader.Read())
jsonString.Append("{");
for (int i = 0; i dataReader.FieldCount; i++)
Type type = dataReader.GetFieldType(i);
string strKey = dataReader.GetName(i);
string strValue = dataReader[i].ToString();
jsonString.Append("\"" + strKey + "\":");
strValue = StringFormat(strValue, type);
if (i dataReader.FieldCount - 1)
jsonString.Append(strValue + ",");
else
jsonString.Append(strValue);
jsonString.Append("},");
dataReader.Close();
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]");
return jsonString.ToString();
#endregion
}
相关文章
- C# DateTimePicker:日期时间控件「建议收藏」
- Unity Excel转json且自动生成C#脚本
- 【100个 Unity实用技能】| C# 中List 使用Exists方法判断是否存在符合条件的元素对象
- C#之 对象数组
- C#中使用SQLDMO的StoredProcedure对象(存储过程)创建数据表「建议收藏」
- c# mysql executenonquery_C#与数据库访问技术之ExecuteNonQuery方法
- java字符串转换为json对象6_Json对象与Json字符串的转化、JSON字符串与Java对象的转换…
- C# 多线程与线程扫描器
- c# 多线程并发-金三银四面试:C#.NET面试题高级篇2-多线程
- c#动态执行字符串脚本(优化版)
- C#通过log4net进行异常记录详解编程语言
- C# RSA 分段加解密详解编程语言
- c#实现ping详解编程语言
- C#列出局域网中可用SQLServer服务器
- C#最简单的关闭子窗体更新父窗体的实现方法
- c#设置xml内容不换行及属性xsi:nil=true的空节点添加
- 自定义实现Json字符串向C#对象转变的方法
- C#委托(跨窗体操作控件)实例流程讲解
- c#图片添加水印的实例代码
- .net(c#)中的new关键字详细介绍
- c#中String和string的区别介绍
- C#正则表达式分解和转换IP地址实例(C#正则表达式大全c#正则表达式语法)
- c#split分隔字符串使用方法
- C#标识符的使用小结
- c#网络唤醒功能实现
- 浅谈对c#面向对象的理解
- C#中线程同步对象的方法分析
- jQuery.parseJSON(json)将JSON字符串转换成js对象
- 使用JSON.parse将json字符串转换成json对象的时候会出错
- C#对象为Null模式(NullObjectPattern)实例教程
- C#实现Json转Unicode的方法