首页 > Windows开发 > 详细

C#对象转JSON字符串和JSON字符串转对象

时间:2016-01-22 16:56:03      阅读:259      评论:0      收藏:0      [点我收藏+]

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#对象转JSON字符串和JSON字符串转对象

原文:http://www.cnblogs.com/ShoneH/p/5151173.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!