namespace Net.String.ConsoleApplication
{
using System;
using System.Data;
using System.Collections;
using System.ComponentModel;
using System.Collections.Generic;
using System.Web.Script.Serialization; public class JsonHelper
{
/// <summary>
/// 把json字符串转成对象
/// </summary>
/// <typeparam name="T">对象</typeparam>
/// <param name="data">json字符串</param>
public static T Deserialize<T>(string data)
{
System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer();
return json.Deserialize<T>(data);
} /// <summary>
/// 把对象转成json字符串
/// </summary>
/// <param name="o">对象</param>
/// <returns>json字符串</returns>
public static string Serialize(object o)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer();
json.Serialize(o, sb);
return sb.ToString();
} /// <summary>
/// 把DataTable对象转成json字符串
/// </summary>
public string ToJson(DataTable dt)
{
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
ArrayList arrayList = new ArrayList();
foreach (DataRow dataRow in dt.Rows)
{
Dictionary<string, object> dictionary = new Dictionary<string, object>();
foreach (DataColumn dataColumn in dt.Columns)
{
dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName]);
}
arrayList.Add(dictionary);
}
return javaScriptSerializer.Serialize(arrayList);
}
} public static class EnumerableExtension
{
/// <summary>
/// 集合添加一个对象
/// </summary>
public static IEnumerable<T> Add<T>(this IEnumerable<T> e, T value)
{
foreach (var cur in e)
{ yield return cur; }
yield return value;
} /// <summary>
/// 把集合转成DataTable
/// </summary>
public static DataTable ConvertToDataTable<T>(this IEnumerable<T> enumerable)
{
var dataTable = new DataTable();
foreach (PropertyDescriptor pd in TypeDescriptor.GetProperties(typeof(T)))
{
dataTable.Columns.Add(pd.Name, pd.PropertyType);
}
foreach (T item in enumerable)
{
var Row = dataTable.NewRow(); foreach (PropertyDescriptor dp in TypeDescriptor.GetProperties(typeof(T)))
{
Row[dp.Name] = dp.GetValue(item);
}
dataTable.Rows.Add(Row);
}
return dataTable;
}
}
}

  

最新文章

  1. git did not exit cleanly
  2. centos7 升级内核到最新版本
  3. unity3d引擎的学习
  4. Shell 编程基础之变量和环境变量
  5. Android中的dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()
  6. rosetta common sh: mpiCC command not found解决方法
  7. (转) cocos2dx 显示中文
  8. PHP使用SnowFlake算法生成唯一ID
  9. PPTP模式跟L2TP模式有什么不同
  10. (转) sphinx 高亮显示搜索词
  11. UVa 674: Coin Change
  12. Nodejs in Visual Studio Code 04.Swig模版
  13. 使用 CodeIgniter 框架快速开发 PHP 应用(四)
  14. 邮箱自动完成(jquary效果)
  15. php学习笔记——语言切换
  16. WBS任务分解中前置任务闭环回路检测:有向图的简单应用(C#)
  17. git clone 带用户名密码的形式但包含@等特殊符号无法正常解析
  18. Codeforces 1077D Cutting Out(二分答案)
  19. Java泛型用法总结
  20. pyautogui 文档(四):消息框功能

热门文章

  1. LVS三种模式配置及优点缺点比较 转
  2. slf4j-simple的配置
  3. 主流Jquery弹出框优缺点对比
  4. hdfs: 一个分布式文件系统(一)
  5. C# WinForm 中ComboBox数据绑定的问题 (转)
  6. Objective-C ,ios,iphone开发基础:多个视图(view)之间的切换,以及视图之间传值。
  7. [改善Java代码]构造函数尽量简化
  8. [改善Java代码]若有必要,使用变长数组
  9. HDU 1003 - Max Sum(难度:*)
  10. 转:iOS基于MVC的项目重构总结