C#将List<>转换为Json,将DataSet转成List<T>

转换  参考:https://blog.csdn.net/u011176794/article/details/52670339

参考:https://blog.csdn.net/my98800/article/details/52953389?locationNum=1&fps=1

 #region 将List<>转换为Json
        public string List2JSON(List<Model.comment_fivestarsore> objlist)
        {
            string result = "";

            result += "[";
            bool firstline = true;//处理第一行前面不加","号
            foreach (object oo in objlist)
            {
                if (!firstline)
                {
                    result = result + "," + OneObjectToJSON(oo);
                }
                else
                {
                    result = result + OneObjectToJSON(oo) + "";
                    firstline = false;
                }
            }
            return result + "]";
        }

        private string OneObjectToJSON(object o)
        {
            string result = "{";
            List<string> ls_propertys = new List<string>();
            ls_propertys = GetObjectProperty(o);
            foreach (string str_property in ls_propertys)
            {
                if (result.Equals("{"))
                {
                    result = result + str_property;
                }
                else
                {
                    result = result + "," + str_property + "";
                }
            }
            return result + "}";
        }

        private List<string> GetObjectProperty(object o)
        {
            List<string> propertyslist = new List<string>();
            PropertyInfo[] propertys = o.GetType().GetProperties();
            foreach (PropertyInfo p in propertys)
            {
                propertyslist.Add("\"" + p.Name.ToString() + "\":\"" + p.GetValue(o, null) + "\"");
            }
            return propertyslist;
        }

        #endregion

将DataSet中数据表的内容转成list<T>集合

DataSet ds = bll.GetList(0, "", "add_time asc");
List<Model.fivestarsore> models = new List<Model.fivestarsore>();

 if (ds == null || ds.Tables.Count <= 0 )
                return null ;

            DataTable dt = ds.Tables[0];

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                //创建泛型对象
                Model.fivestarsore model2 = Activator.CreateInstance<Model.fivestarsore>();
                //获取对象所有属性
                PropertyInfo[] propertyInfo = model2.GetType().GetProperties();
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    foreach (PropertyInfo info in propertyInfo)
                    {
                        //属性名称和列名相同时赋值
                        if (dt.Columns[j].ColumnName.ToUpper().Equals(info.Name.ToUpper()))
                        {
                            if (dt.Rows[i][j] != DBNull.Value)
                            {
                                //if (info.PropertyType == typeof(System.Nullable<System.DateTime>))
                                //{
                                //    info.SetValue(_t, Convert.ToDateTime(dt.Rows[i][j].ToString()), null);
                                //}
                                //else
                                //{
                                info.SetValue(model2, Convert.ChangeType(dt.Rows[i][j], info.PropertyType), null);
                                //}
                                //info.SetValue(_t, dt.Rows[i][j], null);
                            }
                            else
                            {
                                info.SetValue(model2, null, null);
                            }
                            break;
                        }
                    }
                }
                models.Add(model2);
            }

 前台Ajax接收数据

 //请求数据
    $.ajax({

        type: "POST",
        dataType: "json",
        contentType: "application/x-www-form-urlencoded; charset=utf-8",
        url: fivestarsoreUrl,
        success: function (data) {
            bigdata = data;
            var L = 0;
            for (var i in data) {
            var strHtml = '';
                strHtml += '<li>';
                strHtml += '<label >' + '<strong>' + data[i].kinds + ':</strong>' + '</label>';
                strHtml += '<label id=Lb' + data[i].id + '>' + '</label>';
                //strHtml += '<input type="text" id=txtt' + i + '>';
                strHtml += '<input type="text" id=txtt' + data[i].id + ' >';              
                strHtml += '</li>';
                L = data[i].id;
            $(listDiv).append(strHtml);
                strID += $("#LL" + L).text() + ",";
            //初始化星星
                InitStar2(5, 5, kongxin, shixin, 'Lb' + L, 'txtt' + L, 'LL' + L, bigdata);
            }
        },
        error: function () { }
    });

 

posted @ 2018-08-03 11:11  阴翳公子  阅读(9635)  评论(0编辑  收藏  举报