asp.net DataTable和Dataset序列化成Json格式

DataTableToJson:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization.Json; using System.Runtime.Serialization; using System.IO; using System.Web.Script.Serialization; using MicroBlog.Common.APIHelper; using System.Web; namespace MicroBlog.Common.APIHelper { public class Resolve { /// <summary> /// JSON文本转对象,泛型方法 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="jsonText">JSON文本</param> /// <returns>指定类型的对象</returns> public static T JSONToObject<T>(string jsonText, HttpContext context) { JavaScriptSerializer jss = new JavaScriptSerializer(); try { return jss.Deserialize<T>(jsonText); } catch (Exception ex) { return default(T); } } /// <summary> /// 将JSON文本转换成数据行 /// </summary> /// <param name="jsonText">JSON文本</param> /// <returns>数据行的字典</returns> public static Dictionary<string, object> DataRowFromJSON(string jsonText, HttpContext context) { return JSONToObject<Dictionary<string, object>>(jsonText, context); } } } 调用的话:Dictionary<string, object> dt = Resolve.DataRowFromJSON(requestbuffer, context);


DatasetToJson:

public class DataSetConverter : JsonConverter { public override bool CanConvert(Type objectType) { return typeof(DataSet).IsAssignableFrom(objectType); } public override void WriteJson(JsonWriter writer, object value) { DataSet ds = (DataSet)value; writer.WriteStartObject(); foreach (DataTable dt in ds.Tables) { writer.WritePropertyName(dt.TableName); writer.WriteStartArray(); foreach (DataRow dr in dt.Rows) { writer.WriteStartObject(); foreach (DataColumn dc in dt.Columns) { writer.WritePropertyName(dc.ColumnName); writer.WriteValue(dr[dc].ToString()); } writer.WriteEndObject(); } writer.WriteEndArray(); } writer.WriteEndObject(); } }

调用的话:JavaScriptConvert.SerializeObject(GetTestDataSet(),newDataSetConverter());


DataTableToJson2:

public class DataTableConverter : JsonConverter { public override void WriteJson(JsonWriter writer, object value) { DataTable dt = (DataTable)value; writer.WriteStartArray(); foreach (DataRow dr in dt.Rows) { writer.WriteStartObject(); foreach (DataColumn dc in dt.Columns) { writer.WritePropertyName(dc.ColumnName); writer.WriteValue(dr[dc].ToString()); } writer.WriteEndObject(); } writer.WriteEndArray(); } public override bool CanConvert(Type objectType) { return typeof(DataTable).IsAssignableFrom(objectType); } }调用的话: JavaScriptConvert.SerializeObject(GetTestDataTable(),newDataTableConverter());


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值