首页 > 代码库 > JsonOperate 帮助类

JsonOperate 帮助类

引用 Newtonsoft.Json

 

using Newtonsoft.Json;using System;using System.Collections.Generic;using System.Data;using System.Web.Script.Serialization;//下载Newtonsoft.Json.dllpublic 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 =http://www.mamicode.com/ 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 =http://www.mamicode.com/= "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;    }}

 

JsonOperate 帮助类