c#常用的Datable转换为json,以及json转换为DataTable操作方法

#region  DataTable 转换为Json字符串实例方法
/// <summary>
/// GetClassTypeJosn 的摘要说明
/// </summary>
public class GetClassTypeJosn : IHttpHandler
{
    /// <summary>
    /// 文件名:DataTable 和Json 字符串互转
    /// 版权所有:Copyright (C) Create Family Wealth liangjw
    /// 创建标示:2013-08-03
    /// </summary> 
    //用法说明实例
     public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "application/json";
        context.Response.Charset = "utf-8";
        HttpRequest req = context.Request;
        string method = req["method"].ToStr().ToLower();

//获取合同明细列表  DataTable 转换为Json字符串
        if (method == "txtdate")
        {
            string json = "";
            BO.MakeContractMx bll = new MakeContractMx();
            DataSet ds = bll.GetDataTable();
            if (ds.Tables.Count > 0)
            {
                json =ToJson(ds.Tables[0]);
            }
            context.Response.Write(json);
            return;
        }

}

public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

#endregion

#region Json字符串转换为DataTable 实例方法

public DataTable JsonToDataTable(json)
    {
       DataTable  dt= ToDataTable(json);
         return dt;
    }
    
   #endregion

#region DataTable 转换为Json 字符串
    /// <summary>
    /// DataTable 对象 转换为Json 字符串
    /// </summary>
    /// <param name="dt"></param>
    /// <returns></returns>
    public static string ToJson(this DataTable dt)
    {
        JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
        javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
        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].ToStr());
            }
            arrayList.Add(dictionary); //ArrayList集合中添加键值
        }

return javaScriptSerializer.Serialize(arrayList);  //返回一个json字符串
    }
    #endregion

#region Json 字符串 转换为 DataTable数据集合
    /// <summary>
    /// Json 字符串 转换为 DataTable数据集合
    /// </summary>
    /// <param name="json"></param>
    /// <returns></returns>
    public static DataTable ToDataTable(this string json)
    {
        DataTable dataTable = new DataTable();  //实例化
        DataTable result;
        try
        {
            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
            ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
            if (arrayList.Count > 0)
            {
                foreach (Dictionary<string, object> dictionary in arrayList)
                {
                    if (dictionary.Keys.Count<string>() == 0)
                    {
                        result = dataTable;
                        return result;
                    }
                    if (dataTable.Columns.Count == 0)
                    {
                        foreach (string current in dictionary.Keys)
                        {
                            dataTable.Columns.Add(current, dictionary[current].GetType());
                        }
                    }
                    DataRow dataRow = dataTable.NewRow();
                    foreach (string current in dictionary.Keys)
                    {
                        dataRow[current] = dictionary[current];
                    }

dataTable.Rows.Add(dataRow); //循环添加行到DataTable中
                }
            }
        }
        catch
        {
        }
        result = dataTable;
        return result;
    }
    #endregion

#region 转换为string字符串类型
    /// <summary>
    ///  转换为string字符串类型
    /// </summary>
    /// <param name="s">获取需要转换的值</param>
    /// <param name="format">需要格式化的位数</param>
    /// <returns>返回一个新的字符串</returns>
    public static string ToStr(this object s, string format = "")
    {
        string result = "";
        try
        {
            if (format == "")
            {
                result = s.ToString();
            }
            else
            {
                result = string.Format("{0:" + format + "}", s);
            }
        }
        catch
        {
        }
        return result;
    }
   #endregion

时间: 2024-08-04 19:00:16

c#常用的Datable转换为json,以及json转换为DataTable操作方法的相关文章

Python将JSON格式数据转换为SQL语句以便导入MySQL数据库

前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据,我们希望把这些数据导入到MySQL数据库中.phpMyadmin可以把MySQL数据库中的数据导出为JSON格式文件,但却不能把JSON格式文件导入到MySQL数据库.为了实现这个目标,可以编写Python脚本将JSON格式数据转换为SQL语句以便导入MySQL数据库. JSON文件tencent.json部分内容: {"recruitNumber": "1", "name&qu

如何将json格式字符串转换为对象

如何将json格式字符串转换为对象: 下面通过实例简单介绍一下如何将json格式的字符串转换为对象. json格式字符串如下: var str="{'webName':'蚂蚁部落','address':'青岛'}"; 上面是一个字符串,下面就将它转换为对象,代码如下: var str="{'webName':'蚂蚁部落','address':'青岛'}"; var obj=eval("("+str+")"); document

Python函数和常用模块【day06】:json &amp; pickle-hashlib模块

本节内容 json序列化 pickle序列化 hashlib模块 json序列化 1.dumps序列化和loads反序列化 dumps()序列化 1 2 3 4 5 6 7 8 9 10 11 12 13 import  json   #导入json模块 info = {     'name':"zhangqigao",     "age":22 } with open("test.txt","w") as f:  #以普通模

在JS和.NET中使用JSON (以及使用Linq to JSON定制JSON数据)

转载原地址: http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用JSON 在.NET中如何使用JSON 总结 JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据

JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象 。

JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对象.要添加System.Web.Extensions.dll的引用.该类位于System.Web.Script.Serialization命名空间下. 一.属性 MaxJsonLength 获取或设置 JavaScriptSerializer 类接受的 JSON 字符串的最大长度. Recursio

JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象

JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对象.要添加System.Web.Extensions.dll的引用.该类位于System.Web.Script.Serialization命名空间下. 一.属性 MaxJsonLength 获取或设置 JavaScriptSerializer 类接受的 JSON 字符串的最大长度. Recursio

使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)

在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象),在这篇文章中我将通过JToken.JObject和JArray来动态解析JSON对象,使它很容易创建和检索的JSON内容而无需基础类型.通过JObject和JArray创建JSON对象我们先用非常简单的方法来动态创建一些JSON,可通过JToken派生的JSON.NET对象来进行,最常见的JTo

You&#39;re trying to decode an invalid JSON String JSON返回有解析问题

SpringMVC架构的web程序,通常用map返回消息在浏览器中显示,但是实际中报下列错误“”You're trying to decode an invalid JSON String“返回的字符串的被加入了<pre></pre>, 解决方法,在springMvc的配置文件中加入以下配置: <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdap

Json及Json字符串

JSON(JavaScript Object Notation)是一种独立于开发语言的用于存储和交换文本数据的格式,JSON 语法是JavaScript 语法的子集. Json 可以保存数组格式和对象格式两种数据.其中对象格式以"键值对"的形式存储数据,key的取值为 String 类型,必须加双引号. Json对象:符合json格式的对象.因为js中属性名也是以字符串的形式存储的,所以可以直接通过.访问,无需解析. var json={"name":"l

对象、对象数组、JSON、JSON数组的相关操作

本文主要是对JS操作JSON的要领做下总结在JSON中,有两种结构:对象和数组 1. 一个对象以“{”(左括号)开始,“}”(右括号)结束.每个“名称”后跟一个“:”(冒号):“"名称/值" 对”之间运用 “,”(逗号)分隔. 名称用引号括起来:值如果是字符串则必须用括号,数值型则不须要.例如: var json = { "name": "姓名", "sex": "25" }; 2. 数组是值(value)