亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#實現任意數據類型轉成json格式輸出

2020-01-24 03:05:54
字體:
來源:轉載
供稿:網友
直接貼代碼:
復制代碼 代碼如下:

/// List轉成json  
/// </summary> 
/// <typeparam name="T"></typeparam> 
/// <param name="jsonName"></param> 
/// <param name="list"></param> 
/// <returns></returns> 
public 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(); 


/// <summary> 
/// List轉成json  
/// </summary> 
/// <typeparam name="T"></typeparam> 
/// <param name="list"></param> 
/// <returns></returns> 
public static string ListToJson<T>(IList<T> list) 

 object obj = list[0]; 
 return ListToJson<T>(list, obj.GetType().Name); 


/// <summary>  
/// 對象轉換為Json字符串  
/// </summary>  
/// <param name="jsonObject">對象</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 + "}"; 


/// <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 + "]"; 


/// <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 + "]"; 


/// <summary>  
/// Datatable轉換為Json  
/// </summary>  
/// <param name="table">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> 
/// <param name="jsonName"></param> 
/// <param name="dt"></param> 
/// <returns></returns> 
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(); 


/// <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(); 


/// <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 + "}"; 


/// <summary> 
/// 過濾特殊字符 
/// </summary> 
/// <param name="s"></param> 
/// <returns></returns> 
private static string String2Json(String s) 

 StringBuilder sb = new StringBuilder(); 
 for (int i = 0; i < s.Length; i++) 
 { 
  char c = s.ToCharArray()[i]; 
  switch (c) 
  { 
   case '/"': 
    sb.Append("http:///""); break; 
   case '//': 
    sb.Append("http:////"); break; 
   case '/': 
    sb.Append("http:///"); break; 
   case '/b': 
    sb.Append("http://b"); break; 
   case '/f': 
    sb.Append("http://f"); break; 
   case '/n': 
    sb.Append("http://n"); break; 
   case '/r': 
    sb.Append("http://r"); break; 
   case '/t': 
    sb.Append("http://t"); break; 
   default: 
    sb.Append(c); break; 
  } 
 } 
 return sb.ToString(); 


/// <summary> 
/// 格式化字符型、日期型、布爾型 
/// </summary> 
/// <param name="str"></param> 
/// <param name="type"></param> 
/// <returns></returns> 
private static string StringFormat(string str, Type type) 

 if (type == typeof(string)) 
 { 
  str = String2Json(str); 
  str = "/"" + str + "/""; 
 } 
 else if (type == typeof(DateTime)) 
 { 
  str = "/"" + str + "/""; 
 } 
 else if (type == typeof(bool)) 
 { 
  str = str.ToLower(); 
 } 
 return str; 
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩毛片在线看| 国产成人精品一区二区| 2021国产精品视频| 欧洲亚洲免费视频| 亚洲人成亚洲人成在线观看| 九九精品视频在线| 这里精品视频免费| 亚洲高清色综合| 日韩视频在线免费观看| 在线观看日韩欧美| 欧美激情性做爰免费视频| 午夜精品久久久久久久99热浪潮| 亚洲精品一区二区三区不| 日韩a**中文字幕| 久久99久久99精品免观看粉嫩| 亚洲精品aⅴ中文字幕乱码| 性欧美长视频免费观看不卡| 亚洲大胆人体在线| 亚洲精品久久久久久久久久久| 国产欧美精品xxxx另类| 国产精品777| 久久精品99国产精品酒店日本| 国产在线观看精品| 国产精品香蕉在线观看| 亚洲国产一区二区三区在线观看| 国产成人小视频在线观看| 丝袜亚洲欧美日韩综合| 亚洲韩国日本中文字幕| 欧美视频一区二区三区…| 久久久这里只有精品视频| 亚洲男人的天堂在线| 精品五月天久久| 久久97久久97精品免视看| 亚洲欧美国产一本综合首页| 欧美中文字幕在线播放| 欧美精品免费播放| 国产一区二区三区网站| 亚洲精品福利在线| 日韩风俗一区 二区| 久久精品亚洲热| 91人成网站www| 国产噜噜噜噜久久久久久久久| 日本高清视频一区| 这里只有精品久久| 91中文字幕一区| 亚洲精品福利资源站| 日韩欧美中文字幕在线播放| 国产日韩在线一区| 精品久久久久久中文字幕大豆网| 国产精品欧美激情在线播放| 欧美日韩国产黄| 国产欧美在线播放| 国产亚洲人成网站在线观看| 亚洲精品女av网站| 国产精品欧美日韩一区二区| 日韩中文在线视频| 久久人人97超碰精品888| 91精品在线看| 97国产一区二区精品久久呦| 色妞一区二区三区| 欧美中文字幕在线播放| 久久影院模特热| 国产午夜精品视频| 日韩中文字幕在线免费观看| 亚洲人成电影在线播放| 亚洲成人av资源网| 国产精品久久电影观看| 成人亚洲欧美一区二区三区| 久久久精品国产亚洲| 日本伊人精品一区二区三区介绍| 欧美国产日韩二区| 日本一区二区在线免费播放| 欧美日韩午夜视频在线观看| 色综合影院在线| 日本中文字幕久久看| 影音先锋欧美在线资源| 久久天天躁夜夜躁狠狠躁2022| 欧美成人黄色小视频| 欧美在线视频免费播放| 久久综合88中文色鬼| 欧美日韩人人澡狠狠躁视频| 国内精品小视频| 欧美精品福利在线| 中文字幕日韩欧美在线视频| 午夜精品久久久久久99热| 在线看福利67194| 亚洲福利视频免费观看| 亚洲色图欧美制服丝袜另类第一页| 在线观看久久av| 久久精品人人做人人爽| 国产精品高潮在线| 成人亚洲激情网| 久久久爽爽爽美女图片| 欧美第一淫aaasss性| 按摩亚洲人久久| 国产精品自拍网| 日韩人体视频一二区| 91av视频在线观看| www.99久久热国产日韩欧美.com| 日韩中文字幕在线视频| 热99精品只有里视频精品| 欧美午夜精品久久久久久人妖| 精品色蜜蜜精品视频在线观看| 久久久中精品2020中文| 国内精品久久久久伊人av| 久久久久www| 国产精品久久久久高潮| 中文字幕在线看视频国产欧美在线看完整| 美日韩精品视频免费看| 久久国产精品久久久久久久久久| 成人精品视频99在线观看免费| 国产精品久久久久久久久久99| 亚洲成成品网站| 日韩有码在线电影| 精品视频在线导航| 亚洲淫片在线视频| 精品呦交小u女在线| 欧美视频在线观看 亚洲欧| 91日本在线观看| 久久国产加勒比精品无码| 日韩av中文字幕在线| 黄色成人在线播放| 成人激情视频免费在线| 91麻豆国产精品| 亚洲精品国偷自产在线99热| 欧美精品中文字幕一区| 亚洲精品欧美一区二区三区| 97国产suv精品一区二区62| 91精品啪aⅴ在线观看国产| 国产精品成人在线| 亚洲精品狠狠操| 国产区精品在线观看| 在线日韩av观看| 精品亚洲aⅴ在线观看| 亚洲人成在线电影| 国产手机视频精品| 成人激情黄色网| 91sa在线看| 中文在线不卡视频| 国产在线观看不卡| 久久久久久免费精品| 国产精品专区第二| 51视频国产精品一区二区| 国产高清在线不卡| 亚洲四色影视在线观看| 亚洲一区二区三区sesese| 亚洲图片欧美日产| 国产亚洲精品激情久久| 中文国产成人精品| 欧美日韩精品在线视频| 欧美另类精品xxxx孕妇| 国产亚洲美女精品久久久| 色偷偷偷亚洲综合网另类| 久久久久久久久久久人体| 国内外成人免费激情在线视频网站| 欧美另类高清videos| 久久久亚洲精品视频| 中文字幕亚洲情99在线| 一区二区亚洲精品国产| 在线视频中文亚洲| 国产成人鲁鲁免费视频a| 久久精视频免费在线久久完整在线看| 久久久人成影片一区二区三区观看| 亚洲精品国精品久久99热一|