asp.net JSONHelper JSON幫助類
更新時間:2010年01月09日 22:16:51 作者:
asp.net JSONHelper JSON幫助類
復(fù)制代碼 代碼如下:
/**************************************************
* 版權(quán)所有: Mr_Sheng
* 文 件 名: JSONHelper.cs
* 文件描述:
* 類型說明: JSONHelper JSON幫助類
* 授權(quán)聲明:
* 本程序為自由軟件;
* 您可依據(jù)自由軟件基金會所發(fā)表的GPL v3授權(quán)條款,對本程序再次發(fā)布和/或修改;
* 本程序是基于使用目的而加以發(fā)布,然而不負(fù)任何擔(dān)保責(zé)任;
* 亦無對適售性或特定目的適用性所為的默示性擔(dān)保。
* 詳情請參照GNU通用公共授權(quán) v3(參見license.txt文件)。
* 版本歷史:
* v2.0.0 Mr_Sheng 2009-09-09 修改
***************************************************/
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Script.Serialization;
using System.Data;
namespace Sheng.Common
{
/// <summary>
/// JSON幫助類
/// </summary>
public class JSONHelper
{
/// <summary>
/// 對象轉(zhuǎn)JSON
/// </summary>
/// <param name="obj">對象</param>
/// <returns>JSON格式的字符串</returns>
public static string ObjectToJSON(object obj)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
try
{
return jss.Serialize(obj);
}
catch (Exception ex)
{
throw new Exception("JSONHelper.ObjectToJSON(): " + ex.Message);
}
}
/// <summary>
/// 數(shù)據(jù)表轉(zhuǎn)鍵值對集合
/// 把DataTable轉(zhuǎn)成 List集合, 存每一行
/// 集合中放的是鍵值對字典,存每一列
/// </summary>
/// <param name="dt">數(shù)據(jù)表</param>
/// <returns>哈希表數(shù)組</returns>
public static List<Dictionary<string, object>> DataTableToList(DataTable dt)
{
List<Dictionary<string, object>> list
= new List<Dictionary<string, object>>();
foreach (DataRow dr in dt.Rows)
{
Dictionary<string, object> dic = new Dictionary<string, object>();
foreach (DataColumn dc in dt.Columns)
{
dic.Add(dc.ColumnName, dr[dc.ColumnName]);
}
list.Add(dic);
}
return list;
}
/// <summary>
/// 數(shù)據(jù)集轉(zhuǎn)鍵值對數(shù)組字典
/// </summary>
/// <param name="dataSet">數(shù)據(jù)集</param>
/// <returns>鍵值對數(shù)組字典</returns>
public static Dictionary<string, List<Dictionary<string, object>>> DataSetToDic(DataSet ds)
{
Dictionary<string, List<Dictionary<string, object>>> result = new Dictionary<string, List<Dictionary<string, object>>>();
foreach (DataTable dt in ds.Tables)
result.Add(dt.TableName, DataTableToList(dt));
return result;
}
/// <summary>
/// 數(shù)據(jù)表轉(zhuǎn)JSON
/// </summary>
/// <param name="dataTable">數(shù)據(jù)表</param>
/// <returns>JSON字符串</returns>
public static string DataTableToJSON(DataTable dt)
{
return ObjectToJSON(DataTableToList(dt));
}
/// <summary>
/// JSON文本轉(zhuǎn)對象,泛型方法
/// </summary>
/// <typeparam name="T">類型</typeparam>
/// <param name="jsonText">JSON文本</param>
/// <returns>指定類型的對象</returns>
public static T JSONToObject<T>(string jsonText)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
try
{
return jss.Deserialize<T>(jsonText);
}
catch (Exception ex)
{
throw new Exception("JSONHelper.JSONToObject(): " + ex.Message);
}
}
/// <summary>
/// 將JSON文本轉(zhuǎn)換為數(shù)據(jù)表數(shù)據(jù)
/// </summary>
/// <param name="jsonText">JSON文本</param>
/// <returns>數(shù)據(jù)表字典</returns>
public static Dictionary<string, List<Dictionary<string, object>>> TablesDataFromJSON(string jsonText)
{
return JSONToObject<Dictionary<string, List<Dictionary<string, object>>>>(jsonText);
}
/// <summary>
/// 將JSON文本轉(zhuǎn)換成數(shù)據(jù)行
/// </summary>
/// <param name="jsonText">JSON文本</param>
/// <returns>數(shù)據(jù)行的字典</returns>
public static Dictionary<string, object> DataRowFromJSON(string jsonText)
{
return JSONToObject<Dictionary<string, object>>(jsonText);
}
}
}
System.Web.Script.Serialization命名空間是.Net 3.5新添加的.
如果要在3.5以下版本中使用,可以下載3.5中的System.Web.Extensions.dll 引入到自己的應(yīng)用中.
您可能感興趣的文章:
- 使用jQuery向asp.net Mvc傳遞復(fù)雜json數(shù)據(jù)-ModelBinder篇
- 使用ASP.NET一般處理程序或WebService返回JSON的實現(xiàn)代碼
- asp.net(C#)解析Json的類代碼
- Jquery 組合form元素為json格式,asp.net反序列化
- asp.net 2.0里也可以用JSON的使用方法
- asp.net+jquery Jsonp使用方法
- jQuery asp.net 用json格式返回自定義對象
- Jquery中g(shù)etJSON在asp.net中的使用說明
- asp.net中各種類型的JSON格式化
- ASP.NET自帶對象JSON字符串與實體類的轉(zhuǎn)換
相關(guān)文章
ASP.NET中MVC使用AJAX調(diào)用JsonResult方法并返回自定義錯誤信息
這篇文章主要介紹了ASP.NET中MVC使用AJAX調(diào)用JsonResult方法并返回自定義錯誤信息的相關(guān)資料,需要的朋友可以參考下2014-11-11ASP.NET筆記之 圖庫權(quán)限設(shè)置的方法
本篇文章小編為大家介紹,ASP.NET筆記之 圖庫權(quán)限設(shè)置的方法。需要的朋友參考下2013-04-04asp.net?core?MVC?全局過濾器之ExceptionFilter過濾器(1)
這篇文章主要為大家詳細(xì)介紹了asp.net?core?MVC?全局過濾器之ExceptionFilter過濾器,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08Asp.NET Core 限流控制(AspNetCoreRateLimit)的實現(xiàn)
這篇文章主要介紹了Asp.NET Core 限流控制(AspNetCoreRateLimit)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03利用VS2019創(chuàng)建Web項目并發(fā)送到IIS及IIS與ASP.NET配置教程
這篇文章主要介紹了利用VS2019創(chuàng)建Web項目,并發(fā)送到IIS,以及IIS與ASP.NET配置,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03