当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net JSONHelper JSON帮助类

asp.net JSONHelper JSON帮助类

2017年12月12日  | 移动技术网IT编程  | 我要评论

非诚勿扰邵利明,高危型hpv,交春

复制代码 代码如下:

/**************************************************
* 版权所有: mr_sheng
* 文 件 名: jsonhelper.cs
* 文件描述:
* 类型说明: jsonhelper json帮助类
* 授权声明:
* 本程序为自由软件;
* 您可依据自由软件基金会所发表的gpl v3授权条款,对本程序再次发布和/或修改;
* 本程序是基于使用目的而加以发布,然而不负任何担保责任;
* 亦无对适售性或特定目的适用性所为的默示性担保。
* 详情请参照gnu通用公共授权 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>
/// 对象转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>
/// 数据表转键值对集合
/// 把datatable转成 list集合, 存每一行
/// 集合中放的是键值对字典,存每一列
/// </summary>
/// <param name="dt">数据表</param>
/// <returns>哈希表数组</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>
/// 数据集转键值对数组字典
/// </summary>
/// <param name="dataset">数据集</param>
/// <returns>键值对数组字典</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>
/// 数据表转json
/// </summary>
/// <param name="datatable">数据表</param>
/// <returns>json字符串</returns>
public static string datatabletojson(datatable dt)
{
return objecttojson(datatabletolist(dt));
}
/// <summary>
/// json文本转对象,泛型方法
/// </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文本转换为数据表数据
/// </summary>
/// <param name="jsontext">json文本</param>
/// <returns>数据表字典</returns>
public static dictionary<string, list<dictionary<string, object>>> tablesdatafromjson(string jsontext)
{
return jsontoobject<dictionary<string, list<dictionary<string, object>>>>(jsontext);
}
/// <summary>
/// 将json文本转换成数据行
/// </summary>
/// <param name="jsontext">json文本</param>
/// <returns>数据行的字典</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 引入到自己的应用中.

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网