设为首页 加入收藏

TOP

C#对象转JSON字符串和JSON字符串转对象
2014-11-23 21:26:32 来源: 作者: 【 】 浏览:15
Tags:对象 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
{
///


/// 把json字符串转成对象
///

/// 对象
/// json字符串
public static T Deserialize(string data)
{
System.Web.Script.Serialization.java scriptSerializer json = new System.Web.Script.Serialization.java scriptSerializer();
return json.Deserialize(data);
}


///


/// 把对象转成json字符串
///

/// 对象
/// json字符串
public static string Serialize(object o)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.Web.Script.Serialization.java scriptSerializer json = new System.Web.Script.Serialization.java scriptSerializer();
json.Serialize(o, sb);
return sb.ToString();
}


///


/// 把DataTable对象转成json字符串
///

public string ToJson(DataTable dt)
{
java scriptSerializer java scriptSerializer = new java scriptSerializer();
ArrayList arrayList = new ArrayList();
foreach (DataRow dataRow in dt.Rows)
{
Dictionary dictionary = new Dictionary();
foreach (DataColumn dataColumn in dt.Columns)
{
dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName]);
}
arrayList.Add(dictionary);
}
return java scriptSerializer.Serialize(arrayList);
}
}


public static class EnumerableExtension
{
///


/// 集合添加一个对象
///

public static IEnumerable Add(this IEnumerable e, T value)
{
foreach (var cur in e)
{ yield return cur; }
yield return value;
}


///


/// 把集合转成DataTable
///

public static DataTable ConvertToDataTable(this IEnumerable 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#把对象类型转化为指定类型,转.. 下一篇Java中关于JSON对象类型和字符串..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: