• JsonOperate 帮助类


    引用 Newtonsoft.Json

    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Web.Script.Serialization;
    
    //下载Newtonsoft.Json.dll
    public class JsonOperate
    {
        private JavaScriptSerializer Jss = new JavaScriptSerializer();
    
        private string _IdField;
    
        private string _IdType;
    
        private string _TextField;
    
        private string _StateField;
    
        private string _CheckedField;
    
        private string _ParentIdField;
    
        private string _IconClsField;
    
        private string _AttributesField;
    
        private string _IconCls;
    
        private string _ParentId;
    
        private string _State;
    
        private string _AllData;
    
        private string _Checked;
    
        private string _Attributes;
    
        private DataTable _JsonTable;
    
        public DataTable JsonTable
        {
            get
            {
                return this._JsonTable;
            }
            set
            {
                this._JsonTable = value;
            }
        }
    
        public string IdField
        {
            get
            {
                return this._IdField;
            }
            set
            {
                this._IdField = value;
            }
        }
    
        public string IdType
        {
            get
            {
                return this._IdType;
            }
            set
            {
                this._IdType = value;
            }
        }
    
        public string TextField
        {
            get
            {
                return this._TextField;
            }
            set
            {
                this._TextField = value;
            }
        }
    
        public string StateField
        {
            get
            {
                return this._StateField;
            }
            set
            {
                this._StateField = value;
            }
        }
    
        public string CheckedField
        {
            get
            {
                return this._CheckedField;
            }
            set
            {
                this._CheckedField = value;
            }
        }
    
        public string SelectedField
        {
            get;
            set;
        }
    
        public string ParentId
        {
            get
            {
                return this._ParentId;
            }
            set
            {
                this._ParentId = value;
            }
        }
    
        public string ParentIdField
        {
            get
            {
                return this._ParentIdField;
            }
            set
            {
                this._ParentIdField = value;
            }
        }
    
        public string AttributesField
        {
            get
            {
                return this._AttributesField;
            }
            set
            {
                this._AttributesField = value;
            }
        }
    
        public string IconClsField
        {
            get
            {
                return this._IconClsField;
            }
            set
            {
                this._IconClsField = value;
            }
        }
    
        public string IconCls
        {
            get
            {
                return this._IconCls;
            }
            set
            {
                this._IconCls = value;
            }
        }
    
        public string Attributes
        {
            get
            {
                return this._Attributes;
            }
            set
            {
                this._Attributes = value;
            }
        }
    
        public string Checked
        {
            get
            {
                return this._Checked;
            }
            set
            {
                this._Checked = value;
            }
        }
    
        public string State
        {
            get
            {
                return this._State;
            }
            set
            {
                this._State = value;
            }
        }
    
        public string AllData
        {
            get
            {
                return this._AllData;
            }
            set
            {
                this._AllData = value;
            }
        }
    
        public string GetTreeJson()
        {
            System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>> list = new System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>>();
            string text = "";
            if (!string.IsNullOrEmpty(this.ParentIdField))
            {
                text = this.ParentIdField + " is Null";
                if (string.IsNullOrEmpty(this.IdType))
                {
                    text = text + " or " + this.ParentIdField + "='0'";
                }
                else
                {
                    text = text + " or " + this.ParentIdField + "=''";
                }
            }
            if (this.AllData == "true")
            {
                list.Add(new System.Collections.Generic.Dictionary<string, object>
                    {
                        {
                            "id",
                            ""
                        },
                        {
                            "text",
                            "全部"
                        }
                    });
            }
            DataRow[] array = this.JsonTable.Select(text);
            for (int i = 0; i < array.Length; i++)
            {
                DataRow dataRow = array[i];
                System.Collections.Generic.Dictionary<string, object> dictionary = new System.Collections.Generic.Dictionary<string, object>();
                this.ParentId = dataRow[this.IdField].ToString();
                dictionary.Add("id", dataRow[this.IdField].ToString());
                dictionary.Add("text", dataRow[this.TextField].ToString());
                if (!string.IsNullOrEmpty(this.StateField))
                {
                    dictionary.Add("state", dataRow[this.StateField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.State))
                {
                    dictionary.Add("state", this.State);
                }
                if (!string.IsNullOrEmpty(this.CheckedField))
                {
                    dictionary.Add("checked", dataRow[this.CheckedField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.Checked))
                {
                    dictionary.Add("checked", this.Checked);
                }
                if (!string.IsNullOrEmpty(this.SelectedField))
                {
                    dictionary.Add("selected", dataRow[this.SelectedField].ToString());
                }
                if (!string.IsNullOrEmpty(this.IconClsField))
                {
                    dictionary.Add("iconCls", dataRow[this.IconClsField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.IconCls))
                {
                    dictionary.Add("iconCls", this.IconCls);
                }
                if (!string.IsNullOrEmpty(this.AttributesField))
                {
                    dictionary.Add("attributes", dataRow[this.AttributesField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.Attributes))
                {
                    dictionary.Add("attributes", this.Attributes);
                }
                if (!string.IsNullOrEmpty(this.ParentIdField))
                {
                    dictionary.Add("children", this.GetTreeChildrenJson());
                }
                list.Add(dictionary);
            }
            return this.Jss.Serialize(list);
        }
    
        public System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>> GetTreeChildrenJson()
        {
            System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>> list = new System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>>();
            string filterExpression = this.ParentIdField + " = '" + this.ParentId + "'";
            DataRow[] array = this.JsonTable.Select(filterExpression);
            for (int i = 0; i < array.Length; i++)
            {
                DataRow dataRow = array[i];
                System.Collections.Generic.Dictionary<string, object> dictionary = new System.Collections.Generic.Dictionary<string, object>();
                this.ParentId = dataRow[this.IdField].ToString();
                dictionary.Add("id", dataRow[this.IdField].ToString());
                dictionary.Add("text", dataRow[this.TextField].ToString());
                if (!string.IsNullOrEmpty(this.StateField))
                {
                    dictionary.Add("state", dataRow[this.StateField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.State))
                {
                    dictionary.Add("state", this.State);
                }
                if (!string.IsNullOrEmpty(this.CheckedField))
                {
                    dictionary.Add("checked", dataRow[this.CheckedField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.Checked))
                {
                    dictionary.Add("checked", this.Checked);
                }
                if (!string.IsNullOrEmpty(this.SelectedField))
                {
                    dictionary.Add("selected", dataRow[this.SelectedField].ToString());
                }
                if (!string.IsNullOrEmpty(this.IconClsField))
                {
                    dictionary.Add("iconCls", dataRow[this.IconClsField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.IconCls))
                {
                    dictionary.Add("iconCls", this.IconCls);
                }
                if (!string.IsNullOrEmpty(this.AttributesField))
                {
                    dictionary.Add("attributes", dataRow[this.AttributesField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.Attributes))
                {
                    dictionary.Add("attributes", this.Attributes);
                }
                dictionary.Add("children", this.GetTreeChildrenJson());
                list.Add(dictionary);
            }
            return list;
        }
    
        public string GetTreeGridJson()
        {
            System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>> list = new System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>>();
            string text = this.ParentIdField + " is Null";
            if (string.IsNullOrEmpty(this.IdType))
            {
                text = text + " or " + this.ParentIdField + "='0'";
            }
            else
            {
                text = text + " or " + this.ParentIdField + "=''";
            }
            DataRow[] array = this.JsonTable.Select(text);
            for (int i = 0; i < array.Length; i++)
            {
                DataRow dataRow = array[i];
                System.Collections.Generic.Dictionary<string, object> dictionary = new System.Collections.Generic.Dictionary<string, object>();
                foreach (DataColumn dataColumn in this.JsonTable.Columns)
                {
                    if (dataColumn.DataType == System.Type.GetType("System.DateTime"))
                    {
                        string value;
                        if (string.IsNullOrEmpty(dataRow[dataColumn.ColumnName].ToString()))
                        {
                            value = "";
                        }
                        else
                        {
                            value = System.Convert.ToDateTime(dataRow[dataColumn.ColumnName].ToString()).ToString("yyyy-MM-dd HH:mm");
                        }
                        dictionary.Add(dataColumn.ColumnName, value);
                    }
                    else
                    {
                        dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToString());
                    }
                }
                this.ParentId = dataRow[this.IdField].ToString();
                if (!string.IsNullOrEmpty(this.StateField))
                {
                    dictionary.Add("state", dataRow[this.StateField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.State))
                {
                    dictionary.Add("state", this.State);
                }
                if (!string.IsNullOrEmpty(this.CheckedField))
                {
                    dictionary.Add("checked", dataRow[this.CheckedField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.Checked))
                {
                    dictionary.Add("checked", this.Checked);
                }
                if (!string.IsNullOrEmpty(this.IconClsField))
                {
                    dictionary.Add("iconCls", dataRow[this.IconClsField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.IconCls))
                {
                    dictionary.Add("iconCls", this.IconCls);
                }
                if (!string.IsNullOrEmpty(this.AttributesField))
                {
                    dictionary.Add("attributes", dataRow[this.AttributesField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.Attributes))
                {
                    dictionary.Add("attributes", this.Attributes);
                }
                dictionary.Add("children", this.GetTreeGridChildrenJson());
                list.Add(dictionary);
            }
            return this.Jss.Serialize(list);
        }
    
        public System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>> GetTreeGridChildrenJson()
        {
            System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>> list = new System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>>();
            string filterExpression = this.ParentIdField + " = '" + this.ParentId + "'";
            DataRow[] array = this.JsonTable.Select(filterExpression);
            for (int i = 0; i < array.Length; i++)
            {
                DataRow dataRow = array[i];
                System.Collections.Generic.Dictionary<string, object> dictionary = new System.Collections.Generic.Dictionary<string, object>();
                foreach (DataColumn dataColumn in this.JsonTable.Columns)
                {
                    if (dataColumn.DataType == System.Type.GetType("System.DateTime"))
                    {
                        string value;
                        if (string.IsNullOrEmpty(dataRow[dataColumn.ColumnName].ToString()))
                        {
                            value = "";
                        }
                        else
                        {
                            value = System.Convert.ToDateTime(dataRow[dataColumn.ColumnName].ToString()).ToString("yyyy-MM-dd HH:mm");
                        }
                        dictionary.Add(dataColumn.ColumnName, value);
                    }
                    else
                    {
                        dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToString());
                    }
                }
                this.ParentId = dataRow[this.IdField].ToString();
                if (!string.IsNullOrEmpty(this.StateField))
                {
                    dictionary.Add("state", dataRow[this.StateField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.State))
                {
                    dictionary.Add("state", this.State);
                }
                if (!string.IsNullOrEmpty(this.CheckedField))
                {
                    dictionary.Add("checked", dataRow[this.CheckedField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.Checked))
                {
                    dictionary.Add("checked", this.Checked);
                }
                if (!string.IsNullOrEmpty(this.IconClsField))
                {
                    dictionary.Add("iconCls", dataRow[this.IconClsField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.IconCls))
                {
                    dictionary.Add("iconCls", this.IconCls);
                }
                if (!string.IsNullOrEmpty(this.AttributesField))
                {
                    dictionary.Add("attributes", dataRow[this.AttributesField].ToString());
                }
                else if (!string.IsNullOrEmpty(this.Attributes))
                {
                    dictionary.Add("attributes", this.Attributes);
                }
                dictionary.Add("children", this.GetTreeGridChildrenJson());
                list.Add(dictionary);
            }
            return list;
        }
    
        public string GetDataGridJson(DataTable JsonTable)
        {
            return string.Concat(new string[]
                {
                    "{ "total":",
                    JsonTable.Rows.Count.ToString(),
                    ","rows":",
                    this.TableToBasicJson(JsonTable),
                    "}"
                });
        }
    
        public string GetDataGridJson(DataTable JsonTable, string strCount)
        {
            return string.Concat(new string[]
                {
                    "{ "total":",
                    strCount,
                    ","rows":",
                    this.TableToBasicJson(JsonTable),
                    "}"
                });
        }
    
        public string GetDataGridJson(DataTable JsonTable, int count)
        {
            return string.Concat(new object[]
                {
                    "{ "total":",
                    count,
                    ","rows":",
                    this.TableToBasicJson(JsonTable),
                    "}"
                });
        }
    
        public string GetDataGridJson(DataTable JsonTable, DataTable strCount, DataTable FooterTable)
        {
            return string.Concat(new object[]
                {
                    "{ "total":",
                    strCount,
                    ","rows":",
                    this.TableToBasicJson(JsonTable),
                    ","footer":",
                    this.TableToBasicJson(FooterTable),
                    "}"
                });
        }
    
        public string TableToBasicJson(DataTable JsonTable)
        {
            System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>> list = new System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>>();
            foreach (DataRow dataRow in JsonTable.Rows)
            {
                System.Collections.Generic.Dictionary<string, object> dictionary = new System.Collections.Generic.Dictionary<string, object>();
                foreach (DataColumn dataColumn in JsonTable.Columns)
                {
                    if (dataColumn.DataType == System.Type.GetType("System.DateTime"))
                    {
                        string value;
                        if (string.IsNullOrEmpty(dataRow[dataColumn.ColumnName].ToString()))
                        {
                            value = "";
                        }
                        else
                        {
                            value = System.Convert.ToDateTime(dataRow[dataColumn.ColumnName].ToString()).ToString("yyyy-MM-dd HH:mm");
                        }
                        dictionary.Add(dataColumn.ColumnName, value);
                    }
                    else
                    {
                        dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToString());
                    }
                }
                list.Add(dictionary);
            }
            return this.Jss.Serialize(list);
        }
    
        public DataTable JsonToTable(string JsonString)
        {
            System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>> list = new System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>>();
            list = this.Jss.Deserialize<System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>>>(JsonString);
            DataTable dataTable = new DataTable();
            if (list.Count > 0)
            {
                foreach (System.Collections.Generic.Dictionary<string, object> current in list)
                {
                    if (dataTable.Columns.Count == 0)
                    {
                        foreach (string current2 in current.Keys)
                        {
                            dataTable.Columns.Add(current2, current[current2].GetType());
                        }
                    }
                    DataRow dataRow = dataTable.NewRow();
                    foreach (string current2 in current.Keys)
                    {
                        dataRow[current2] = current[current2];
                    }
                    dataTable.Rows.Add(dataRow);
                }
            }
            return dataTable;
        }
    
        //public static string ToJson(object t)
        //{
        //    Formatting arg_12_1 = 1;
        //    JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings();
        //    jsonSerializerSettings.set_NullValueHandling(0);
        //    return JsonConvert.SerializeObject(t, arg_12_1, jsonSerializerSettings);
        //}
    
        //public static string ToJson(object t, bool HasNullIgnore)
        //{
        //    string result;
        //    if (HasNullIgnore)
        //    {
        //        Formatting arg_1A_1 = 1;
        //        JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings();
        //        jsonSerializerSettings.set_NullValueHandling(1);
        //        result = JsonConvert.SerializeObject(t, arg_1A_1, jsonSerializerSettings);
        //    }
        //    else
        //    {
        //        result = JsonOperate.ToJson(t);
        //    }
        //    return result;
        //}
    
        public static T FromJson<T>(string strJson) where T : class
        {
            T result;
            if (!string.IsNullOrEmpty(strJson))
            {
                result = JsonConvert.DeserializeObject<T>(strJson);
            }
            else
            {
                result = default(T);
            }
            return result;
        }
    }
  • 相关阅读:
    链表_单链表(插入删除查询)
    OceanBase架构浅析(一)
    电商商品搜索现状
    ASP.NET MVC 源码分析(二) —— 从 IRouteBuilder认识路由构建
    ASP.NET MVC 源码分析(一)
    RPC框架分析
    RPC简介
    Performance Metrics(性能指标2)
    Performance Metrics(性能指标1)
    Introduction(本书简介)
  • 原文地址:https://www.cnblogs.com/chirs888888/p/6228800.html
Copyright © 2020-2023  润新知