引用 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. 基础知识:Q&A

    1.点乘几何意义? >0,a,b同向,=1时,方向完全相同 =0,垂直 <0,反向,=-1时,方向完全相反 2.叉乘几何意义?叉乘得到的向量的方向怎么确定? aXb ,可以得到 同时垂直于 ...

  2. SqlServer禁用启用触发器、外键约束

    --禁用指定名称触发器 ALTER TABLE tbname DISABLE TRIGGER trigname --恢复指定名称触发器 ALTER TABLE tbname ENABLE TRIGGE ...

  3. Node.js exports与module.exports的关系

    今天搜索module.exports时看到CNode社区上发的Hack Sparrow一篇相关文章的链接 Node.js Module – exports vs module.exports 一篇5年 ...

  4. Android中AsyncTask使用

    一.AsyncTask的作用: 代替Thread+Handler的组合,使创建异步任务变得简单. AsyncTask执行后台操作,并在用户界面上发布结果,而不必处理线程. 二.AsyncTask的定义 ...

  5. django manytomany

    转载:http://my.oschina.net/u/572994/blog/105280 例如有如下模型 models.py ? 1 2 3 4 5 6 7 from django.db impor ...

  6. 2016huasacm暑假集训训练四 _排列

    题目链接:http://acm.hust.edu.cn/vjudge/contest/125308#problem/D 这题要求错误的方式有多少种,就是一个错排公式,记得公式就行            ...

  7. 使用File类列出指定位置下的文件及目录信息

    public static void main(String [] args) { File f=new File("C:"); File [] fl=f.listFiles(); ...

  8. 安卓中級教程(8):pathbutton中的animation.java研究(1)

    src/geniuz/myPathbutton/myAnimations.java package geniuz.myPathbutton; import java.util.ArrayList; i ...

  9. Objective的字符串拼接 似乎没有Swift方便,但也可以制做一些较为方便的写法

    NSString *str1 = @"字符串1"; NSString *str2 = @"字符串2"; //在同样条件下,Objective的字符串拼接 往往只 ...

  10. 关于Fekit的安装与测试

    一. Fekit的安装 1.cmd输入指令 $ npm install fekit -g 2.初始化方法 $ fekit init 3.创建本地服务 $ fekit server 4.创建同时改端口( ...