Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / C#对象转JSON字符串和JSON字符串转对象

C#对象转JSON字符串和JSON字符串转对象/* 创建者:菜刀居士的博客
 * 创建日期: 2014年09月03号
 * 功能: Json操作
 *
  */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;
       }
   }
 }C#多线程编程实例 线程与窗体交互【附源码】 http://www.linuxidc.com/Linux/2014-07/104294.htmC#数学运算表达式解释器 http://www.linuxidc.com/Linux/2014-07/104289.htm在C语言中解析JSON配置文件 http://www.linuxidc.com/Linux/2014-05/101822.htmC++ Primer Plus 第6版 中文版 清晰有书签PDF+源代码 http://www.linuxidc.com/Linux/2014-05/101227.htm本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-09/106624.htm