zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C#中的DataSet、string、DataTable 、对象转换成Json

c#对象JSONJSON string 转换成 Dataset dataTable
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 }