zoukankan      html  css  js  c++  java
  • 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;
        }
    }
  • 相关阅读:
    printcap
    browser-ua
    PHP 开发 APP 接口 学习笔记与总结
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode70 爬楼梯
  • 原文地址:https://www.cnblogs.com/chirs888888/p/6228800.html
Copyright © 2011-2022 走看看