/****************************** * 说明:Json相关操作 * 创建人:龚宇超 * 创建日期:2017-10-23 * 修改人: * 修改日期: * 修改备注: * 版本:1.0.0.0 ******************************/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Web.Script.Serialization; using System.Collections; namespace Lserp_UpdateServer { /// /// Json 相关操作 /// public static class JsonUtil { /// /// 说明:json 字符串转换为DataTable /// 创建人:龚宇超 /// 创建日期:2017-10-23 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The json. /// DataTable. public static DataTable ToDataTable(this string json) { DataTable dataTable = new DataTable(); //实例化 DataTable result; try { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值 ArrayList arrayList = javaScriptSerializer.Deserialize(json); if (arrayList.Count > 0) { foreach (Dictionary dictionary in arrayList) { if (dictionary.Keys.Count() == 0) { result = dataTable; return result; } if (dataTable.Columns.Count == 0) { foreach (string current in dictionary.Keys) { dataTable.Columns.Add(current, dictionary[current].GetType()); } } DataRow dataRow = dataTable.NewRow(); foreach (string current in dictionary.Keys) { dataRow[current] = dictionary[current]; } dataTable.Rows.Add(dataRow); //循环添加行到DataTable中 } } } catch { } result = dataTable; return result; } /// /// 说明: /// 创建人:龚宇超 /// 创建日期:2017-10-23 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The json. /// DataRow. public static DataRow ToDataRow(this string json) { if (string.IsNullOrWhiteSpace(json)) return null; return ToDataTable(json).Rows[0]; } /// /// 说明:DataTable To JsonArray /// 创建人:龚宇超 /// 创建日期:2017-10-23 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The dt table. /// System.String. public static string ToJsonArray(this DataTable dtTable) { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值 ArrayList arrayList = new ArrayList(); foreach (DataRow dataRow in dtTable.Rows) { Dictionary dictionary = new Dictionary(); //实例化一个参数集合 foreach (DataColumn dataColumn in dtTable.Columns) { dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToStr()); } arrayList.Add(dictionary); //ArrayList集合中添加键值 } return javaScriptSerializer.Serialize(arrayList); //返回一个json字符串 } /// /// 说明:DataRow To Json /// 创建人:龚宇超 /// 创建日期:2017-10-23 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The row. /// System.String. public static string ToJsonObject(this DataRow row) { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值 ArrayList arrayList = new ArrayList(); Dictionary dictionary = new Dictionary(); //实例化一个参数集合 foreach (DataColumn dataColumn in row.Table.Columns) { dictionary.Add(dataColumn.ColumnName, row[dataColumn.ColumnName].ToStr()); } arrayList.Add(dictionary); //ArrayList集合中添加键值 return javaScriptSerializer.Serialize(arrayList); } } }