300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > C#自定义将各种对象转换成JSON格式的类

C#自定义将各种对象转换成JSON格式的类

时间:2024-01-22 10:39:19

相关推荐

C#自定义将各种对象转换成JSON格式的类

后端开发|C#.Net教程

代码片段,代码分享,PHP代码分享,Java代码分享,Ruby代码分享,Python代码分享,HTML代码分享,CSS代

后端开发-C#.Net教程

这个C#封装类可以用于将各种格式的数据转换成JSON格式,包括List转换成Json,普通集合转换Json ,DataSet转换为Json

,Datatable转换为Json ,DataReader转换为Json等,如果你需要将对象转换成JSON,可以使用这个类。

素材资源下载源码,ubuntu怎么添加指引,tomcat服务器多域名,爬虫卖资料,php 安卓游戏打包,鹤壁浚县seolzw

using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Reflection;using System.Collections;using mon; namespace DotNet.Utilities{ //JSON转换类 public class ConvertJson { #region 私有方法 /// 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("\\\""); break; case \\\: sb.Append("\\\\"); break; case /: sb.Append("\\/"); break; case \: sb.Append("\\b"); break; case \f: sb.Append("\\f"); break; case \ : sb.Append("\\n"); break; case \ : sb.Append("\\r"); break; case \ : sb.Append("\\t"); break; default: sb.Append(c); break;} } return sb.ToString(); }/// 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(); } else if (type != typeof(string) && string.IsNullOrEmpty(str)) {str = "\"" + str + "\""; } return str; } #endregion#region List转换成Json /// public static string ListToJson(IList list) { object obj = list[0]; return ListToJson(list, obj.GetType().Name); }/// public static string ListToJson(IList 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(); 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 /// /// 对象 /// Json字符串 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 /// /// 集合对象 /// Json字符串 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 /// /// 集合对象 /// Json字符串 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 /// /// DataSet对象 /// Json字符串 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 /// /// Datatable对象 /// Json字符串 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(); }/// 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 /// /// DataReader对象 /// Json字符串 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 }}

网站会员注册源码价格,平板电脑运行ubuntu,pychram爬虫爬不出,php redis 加减,曲靖seo优化lzw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。