龙空技术网

C#将数据集转换成json

重庆本地人 49

前言:

而今你们对“json number类型转换”都比较关切,朋友们都需要剖析一些“json number类型转换”的相关内容。那么小编也在网上搜集了一些对于“json number类型转换””的相关知识,希望你们能喜欢,大家快快来学习一下吧!

一、应用场景

在接口开发中,有时需要将一个数据集的数据通过接口以JSON的方式返回给第三方系统使用。在下面的例子中展示一个简单的将数据集转换成JSON数据格式。

二、定义实体类

首先我们先定义一个病人信息的实体类。

public class PatientInfo{public string patientID { get; set; }public string name { get; set; }public int sex { get; set; }public string datetimeOfBirth { get; set; }public string weight { get; set; }public string idNumber { get; set; }public string nationality { get; set; }public string nativePlace { get; set; }public string placeOfBirth { get; set; }public string ethnicity { get; set; }public string occupation { get; set; }public string marriage { get; set; }public string bloodType { get; set; }public string address { get; set; }public string telephone { get; set; }public string familyTelephone { get; set; }}

三、转换工具类

  public static class ToModel<T> where T : new()    {        /// <summary>        /// 将DataTable数据源转换成实体类        /// </summary>        public static List<T> ConvertToModel(DataTable dt)        {            List<T> ts = new List<T>();// 定义集合            foreach (DataRow dr in dt.Rows)            {                T t = new T();                PropertyInfo[] propertys = t.GetType().GetProperties();// 获得此模型的公共属性                foreach (PropertyInfo pi in propertys)                {                    if (dt.Columns.Contains(pi.Name))                    {                        if (!pi.CanWrite) continue;                        var value = dr[pi.Name];                        if (value != DBNull.Value)                        {                            switch (pi.PropertyType.FullName)                            {                                case "System.Decimal":                                    pi.SetValue(t, decimal.Parse(value.ToString()), null);                                    break;                                case "System.String":                                    pi.SetValue(t, value.ToString(), null);                                    break;                                case "System.Int32":                                    pi.SetValue(t, int.Parse(value.ToString()), null);                                    break;                                default:                                    pi.SetValue(t, value, null);                                    break;                            }                        }                    }                }                ts.Add(t);            }            return ts;        }    }

四、调用例子

 public string test()        {//调用数据库存储 ,具体方法请参考【C#之数据库操作类】 data = DataAccess.Access().GetTableByProcedure("存储名称", new SqlParameter[]{             new SqlParameter("@入参",入参 ), }); List<PatientInfo> patientInfoS =ToModel<PatientInfo>.ConvertToModel(data);JsonConvert.SerializeObject(patientInfoS); return JsonConvert.SerializeObject(root);}

标签: #json number类型转换 #实体类转换成json