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;

}

}

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM