引用 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 = ; 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 = ; 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 = ; 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 = ; 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 > )
{
foreach (System.Collections.Generic.Dictionary<string, object> current in list)
{
if (dataTable.Columns.Count == )
{
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 帮助类的更多相关文章

  1. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  2. C++ 可配置的类工厂

    项目中常用到工厂模式,工厂模式可以把创建对象的具体细节封装到Create函数中,减少重复代码,增强可读和可维护性.传统的工厂实现如下: class Widget { public: virtual i ...

  3. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  4. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  5. ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core

    背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供, ...

  6. .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类

    .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...

  7. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  8. PHP-解析验证码类--学习笔记

    1.开始 在 网上看到使用PHP写的ValidateCode生成验证码码类,感觉不错,特拿来分析学习一下. 2.类图 3.验证码类部分代码 3.1  定义变量 //随机因子 private $char ...

  9. C# 多种方式发送邮件(附帮助类)

    因项目业务需要,需要做一个发送邮件功能,查了下资料,整了整,汇总如下,亲测可用- QQ邮箱发送邮件 #region 发送邮箱 try { MailMessage mail = new MailMess ...

随机推荐

  1. 自己封装一个Log模块

    Unity自己有log系统,为什么要自己封装一个 1.不好用,只能在pc上记录log文件,移动平台是没有的 2.在开发时期的log,不想在正式版里面出现.没有一个统一的开关来控制是不是要显示log,要 ...

  2. ZeroMQ接口函数之 :zmq_setsockopt –设置ZMQ socket的属性

    ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html 本文地址 :http://www.cnblogs.com/fengbo ...

  3. 从网易与淘宝的font-size思考前端设计稿与工作流

    本文结合自己对网易与淘宝移动端首页html元素上的font-size这个属性的思考与学习,讨论html5设计稿尺寸以及前端与设计之间协作流程的问题,内容较多,但对你的技术和工作一定有价值,欢迎阅读和点 ...

  4. python递归实现折半查找

    1.Python 基础教程版:(有点没想清楚) def search(sequence, number, lower=0, upper=None): if upper is None: upper = ...

  5. Odoo 8.0 new API 之Environment

    """ An environment wraps data for ORM records: - :attr:`cr`, the current database cur ...

  6. Docker对普通开发者的用处(转)

    有些开发者可能还是不明白 Docker 对自己到底有多大的用处,因此翻译 Docker 个人用例 这篇文章中来介绍 Docker 在普通开发者开发过程中的用例. Docker 如今赢得了许多关注,很多 ...

  7. 諾基亞定制的Android系統名為 Z Launcher

    N1這款產品似乎沒有諾基亞的傳統風格,搭載Android系統以及酷似iPad mini的外觀,都在向外界傳遞著一個信號:諾基亞在變化.不過,沒有了移動設備部門的諾基亞,仍然心系消費電子市場,N1會是個 ...

  8. PHP写在线视频直播技术详解

    2016年7月22日 22:26:45 交流QQ:903464207 本文会不断更新 废话一句,如果你要做高性能服务器服务,请去读底层的东西 http tcp/ip socket 了解基础协议,你对如 ...

  9. Python 中的urlencode和urldecode

    python中的urlencode与urldecode 发表于2013/11/13 16:04:09  79983人阅读 分类: python 当url地址含有中文,或者参数有中文的时候,这个算是很正 ...

  10. 99%的人都理解错了HTTP中GET与POST的区别

    GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...