ToJson转换类

本文介绍了一个实用的JSON转换工具类,能够将各种类型的数据结构(如对象、集合、DataTable等)转换成JSON字符串。该工具类支持.NET环境,并提供了详细的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

偷习别人的一个ToJson转换类,转载之,以备日后参考,谢谢原作者。

view plaincopy to clipboardprint?
using System;  
 using System.Reflection;  
 using System.Collections;  
 using System.Data;  
 using System.Data.Common;  
 /// <summary>  
 /// Json转换工具  
 /// 作者:吴奇凡  
 /// 用于转换基本的对象  
 /// </summary>  
 public class FxJson  
 {  
     private FxJson()  
     {  
     }  
     /// <summary>  
     /// 对象转换为Json字符串  
     /// </summary>  
     /// <param name="jsonObject">对象</param>  
     /// <returns>Json字符串</returns>  
     public static string ToJsonAll(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 string || objectValue is Guid || objectValue is TimeSpan)  
             {  
                 value = "'" + objectValue + "'";  
             }  
             else if (objectValue is IEnumerable)  
             {  
                 value = ToString((IEnumerable)objectValue);  
             }  
             else 
             {  
                 value = objectValue.ToString();  
             }  
             jsonString += "/"" + propertyInfo[i].Name + "/":" + value + ",";  
         }  
         return FxJson.DeleteLast(jsonString) + "}";  
     }  
     /// <summary>  
     /// 对象集合转换Json  
     /// </summary>  
     /// <param name="array">集合对象</param>  
     /// <returns>Json字符串</returns>  
     public static string ToString(IEnumerable array)  
     {  
         string jsonString = "[";  
         foreach (object item in array)  
         {  
             jsonString += FxJson.ToJsonAll(item) + ",";  
         }  
         return FxJson.DeleteLast(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 = item+",";     
         }  
         return FxJson.DeleteLast(jsonString) + "]";  
     }  
     /// <summary>  
     /// 删除结尾字符  
     /// </summary>  
     /// <param name="str">需要删除的字符</param>  
     /// <returns>完成后的字符串</returns>  
     private static string DeleteLast(string str)  
     {  
         if (str.Length > 1)  
         {  
             return str.Substring(0, str.Length - 1);  
         }  
         return str;  
     }  
     /// <summary>  
     /// Datatable转换为Json  
     /// </summary>  
     /// <param name="table">Datatable对象</param>  
     /// <returns>Json字符串</returns>  
     public static string ToString(DataTable table)  
     {  
         string jsonString = "[";  
         DataRowCollection drc = table.Rows;  
         for (int i = 0; i < drc.Count; i++)  
         {  
             jsonString += "{";  
              foreach (DataColumn column in table.Columns)  
              {  
                  jsonString += "/"" + column.ColumnName + "/":";  
                  if (column.DataType == typeof(DateTime) || column.DataType== typeof( string))  
                  {  
                      jsonString += "/"" + drc[i][column.ColumnName] + "/",";  
                  }  
                  else 
                  {  
                      jsonString +=  drc[i][column.ColumnName] + ",";  
                  }  
              }  
              jsonString = DeleteLast(jsonString) + "},";  
         }  
         return DeleteLast(jsonString) + "]";  
     }  
     /// <summary>  
     /// DataReader转换为Json  
     /// </summary>  
     /// <param name="dataReader">DataReader对象</param>  
     /// <returns>Json字符串</returns>  
     public static string ToString(DbDataReader dataReader)  
     {  
         string jsonString = "[";  
         while (dataReader.Read())  
         {  
             jsonString += "{";  
             for (int i = 0; i < dataReader.FieldCount; i++)  
             {  
                 jsonString += "/"" + dataReader.GetName(i) + "/":";  
                 if (dataReader.GetFieldType(i) == typeof(DateTime) || dataReader.GetFieldType(i) == typeof(string))  
                 {  
                     jsonString += "/"" + dataReader[i] + "/",";  
                 }  
                 else 
                 {  
                     jsonString += dataReader[i] + ",";  
                 }  
             }  
             jsonString = DeleteLast(jsonString) + "}";  
         }  
         dataReader.Close();  
         return DeleteLast(jsonString) + "]";  
     }  
     /// <summary>  
     /// DataSet转换为Json  
     /// </summary>  
     /// <param name="dataSet">DataSet对象</param>  
     /// <returns>Json字符串</returns>  
     public static string ToString(DataSet dataSet)  
     {  
         string jsonString = "{";  
         foreach (DataTable table in dataSet.Tables)  
         {  
             jsonString += "/"" + table.TableName + "/":" + ToString(table) + ",";  
         }  
         return jsonString = DeleteLast(jsonString) + "}";  
     }  
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值