博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JsonOperate 帮助类
阅读量:4516 次
发布时间:2019-06-08

本文共 14655 字,大约阅读时间需要 48 分钟。

引用 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 = value;        }    }    public string GetTreeJson()    {        System.Collections.Generic.List
> list = new System.Collections.Generic.List
>(); 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
{ { "id", "" }, { "text", "全部" } }); } DataRow[] array = this.JsonTable.Select(text); for (int i = 0; i < array.Length; i++) { DataRow dataRow = array[i]; System.Collections.Generic.Dictionary
dictionary = new System.Collections.Generic.Dictionary
(); 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
> GetTreeChildrenJson() { System.Collections.Generic.List
> list = new System.Collections.Generic.List
>(); 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
dictionary = new System.Collections.Generic.Dictionary
(); 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
> list = new System.Collections.Generic.List
>(); 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
dictionary = new System.Collections.Generic.Dictionary
(); 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
> GetTreeGridChildrenJson() { System.Collections.Generic.List
> list = new System.Collections.Generic.List
>(); 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
dictionary = new System.Collections.Generic.Dictionary
(); 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
> list = new System.Collections.Generic.List
>(); foreach (DataRow dataRow in JsonTable.Rows) { System.Collections.Generic.Dictionary
dictionary = new System.Collections.Generic.Dictionary
(); 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
> list = new System.Collections.Generic.List
>(); list = this.Jss.Deserialize
>>(JsonString); DataTable dataTable = new DataTable(); if (list.Count > 0) { foreach (System.Collections.Generic.Dictionary
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
(string strJson) where T : class { T result; if (!string.IsNullOrEmpty(strJson)) { result = JsonConvert.DeserializeObject
(strJson); } else { result = default(T); } return result; }}

 

转载于:https://www.cnblogs.com/chirs888888/p/6228800.html

你可能感兴趣的文章
js div拖动动画运行轨迹效果
查看>>
使用Struts 2框架实现文件下载
查看>>
Recipe 1.9. Processing a String One Word at a Time
查看>>
Linux 下查看系统是32位 还是64 位的方法
查看>>
MySQL 引擎 和 InnoDB并发控制 简介
查看>>
Dave Python 练习二
查看>>
菜根谭#179
查看>>
Android 开发笔记___textvieww__跑马灯效果
查看>>
[ JS 进阶 ] 闭包,作用域链,垃圾回收,内存泄露
查看>>
GitHub注册与Git安装
查看>>
11Qt样式表
查看>>
IOS开发-懒加载\延迟加载-图片浏览器实例
查看>>
.net知识体系
查看>>
第二章 第五节 获取帮助
查看>>
关于源代码及其管理工具的总结
查看>>
此文对你人生会有莫大好处的,建议永久保存 2013-07-26 11:04 476人阅读 评论(0) ...
查看>>
JQuery怎样返回前一页
查看>>
Best Time to Buy and Sell Stock
查看>>
Web服务器的原理
查看>>
记录ok6410 jlink 命令行调试uboot
查看>>