#region List<T> 转 Json
        /// <summary>
        /// List<T> 转 Json
        /// </summary>
        /// <typeparam name="T">实体对象</typeparam>
        /// <param name="Obj">List<T>对象</param>
        /// <returns></returns>
        public static string ObjectToJson<T>(T obj)
        {
            try
            {
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
                using (MemoryStream ms = new MemoryStream())
                {
                    serializer.WriteObject(ms, obj);
                    return Encoding.UTF8.GetString(ms.ToArray());
                }
            }
            catch
            {
                //转换失败
                return null;
            }
        }
        #endregion

#region Json 转 List<T>
        /// <summary>
        /// Json 转 List<T>
        /// </summary>
        /// <param name="json">待转换字符串</param>
        /// <param name="t">Json被转换类型</param>
        /// <returns></returns>
        public static Object JsonToObject(string json, Type t)
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(t);
            try
            {
                using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
                {
                    return serializer.ReadObject(ms);
                }
            }
            catch
            {
                //转换失败
                return null;
            }
        }
        #endregion

#region DataTable 转Json
        /// <summary>
        /// DataTable 转Json
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static string DataTableToJson(DataTable dt)
        {
            StringBuilder jsonBuilder = new StringBuilder();
            try
            {
                jsonBuilder.Append("[");//转换成多个model的形式
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    jsonBuilder.Append("{");
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        jsonBuilder.Append("\"");
                        jsonBuilder.Append(dt.Columns[j].ColumnName);
                        jsonBuilder.Append("\":\"");
                        jsonBuilder.Append(dt.Rows[i][j].ToString());
                        jsonBuilder.Append("\",");
                    }
                    jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
                    jsonBuilder.Append("},");
                }
                jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
                jsonBuilder.Append("]");
            }
            catch (Exception ex)
            {
                //TODO
                throw new Exception(ex.Message);
            }
            return jsonBuilder.ToString();
        }
        #endregion

#region 将DataSet转Json
        /// <summary>
        /// 将DataSet转化成JSON数据
        /// </summary>
        /// <param name="ds"></param>
        /// <returns></returns>
        public static string DataSetToJson(DataSet ds)
        {
            StringBuilder jsonBuilder = new StringBuilder();
            try
            {
                jsonBuilder.Append("[");
                for (int i = 0; i < ds.Tables.Count; i++)
                {
                    jsonBuilder.AppendFormat("T{0}:[", (i + 1));
                    for (int j = 0; j < ds.Tables[i].Rows.Count; j++)
                    {
                        jsonBuilder.Append("{");
                        for (int k = 0; k < ds.Tables[i].Columns.Count; k++)
                        {
                            jsonBuilder.AppendFormat("{0}:{1}", ds.Tables[i].Columns[k].ColumnName, ds.Tables[i].Rows[j][k].ToString());
                            if (k != ds.Tables[i].Columns.Count - 1)
                                jsonBuilder.Append(",");
                        }
                        jsonBuilder.Append("}");
                        if (j != ds.Tables[i].Rows.Count - 1)
                            jsonBuilder.Append(",");
                    }
                    jsonBuilder.Append("]");
                    if (i != ds.Tables.Count - 1)
                        jsonBuilder.Append(",");
                }
                jsonBuilder.Append("]");
            }
            catch (Exception ex)
            {
                //TODO
                throw new Exception(ex.Message);
            }
            return jsonBuilder.ToString();
        }
        #endregion

C#中Json和List/DataSet相互转换的更多相关文章

  1. JQuery中 json 和字符串直接相互转换

    json字符串转json对象:jQuery.parseJSON(jsonStr); json对象转json字符串:JSON.stringify(jsonObj);   IE中可能对unicode使用“ ...

  2. android开发中json与java对象相互转换

    json与java对象的相互转换.(使用com.google.gson) 在Android开发过程中,客户端总是需要从服务器获取数据,包括XML和json格式,目前json格式的数据使用较为普遍,所以 ...

  3. JS中JSON和string字符串相互转换

    在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法. JSON.stringify(obj)将JSO ...

  4. DateTable与List<T>相互转换 及JSON与DataTable(DataSet)相互转化

    http://www.360doc.com/content/13/0712/09/10504424_299336674.shtml Linq处理List数据 http://blog.163.com/l ...

  5. js中 json对象与json字符串相互转换的几种方式

    以下总结js中 json对象与json字符串相互转换的几种方式: 一.JSON对象转化为JSON字符串 1.使用JSON.stringify()方法进行转换 该方法不支持较老版本的IE浏览器,比如:i ...

  6. C#中JSON序列化和反序列化

    有一段时间没有到博客园写技术博客了,不过每天逛逛博客园中大牛的博客还是有的,学无止境…… 最近在写些调用他人接口的程序,用到了大量的JSON.XML序列化和反序列化,今天就来总结下json的序列化和反 ...

  7. android中Json的一些应用

    JSON(JavaScript Object Notation) :一种轻量级的数据交换格式,基于JavaScript的一个子集. JSON采用完全独立于语言的文本格式,使JSON成为理想的数据交换语 ...

  8. 解决MVC中JSON字符长度超出限制的异常

    解决MVC中JSON字符长度超出限制的异常 解决方法如下: <configuration> <system.web.extensions> <scripting> ...

  9. Asp.net中Json的序列化和反序列化(一)

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

随机推荐

  1. sql语句添加约束

    sql语句添加约束 --主键约束(Primary Key constraint):要求主键列的数据唯一,并且不允许为空. --唯一约束(Unique Constraint):要求该列唯一,允许为空,但 ...

  2. 20141017--循环语句whlie,do

    int n = 0; ; ) {//n必须小于100,如果等于100则会再进来进行一次运算,变为101. //因为下面的语句中用到了continue,状态改变n++不能用到最后 n++; ) { m ...

  3. OC4_XML文件解析

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-// ...

  4. webSphere集群部署主要步骤

    1.系统管理-节点,添加本机节点和另外一台机器的节点2.建立集群服务cluster,添加成员节点3.将应用部署到集群服务cluster4.将数据库源分别建立到节点作用域5.后续步骤参照安装手册 注意事 ...

  5. 判断Featureclass的类型

    一个Featureclass可以是Shapefile Feature Class.Personal Geodatabase Feature Class.File Geodatabase Feature ...

  6. C# 玩家昵称屏蔽敏感字眼

    功能:使用正则  对玩家昵称处理,如果含有 屏蔽字库里的敏感字眼进行屏蔽.已封装成dll 1.屏蔽字库处理成所需要的正则格式:(所需正则表达式格式:".*((XX)|(XX)|(XX)|.. ...

  7. Entity Framework 一次加载许多个 Fluent API 映射

    可通过多种方法来指定模型的 Fluent 映射(从类到数据库). 1.直接在 DbContext 类的 OnModel­Creating 方法中进行映射,如下所示: protected overrid ...

  8. 【转】MyEclipse快捷键大全(绝对全)

    ref:http://www.douban.com/note/254195820/?type=like# ctrl+w 关闭单个窗口 F3 跳转到类.变量的声明 F11 运行上次程序 Ctrl + F ...

  9. 前端工程搭建NodeJs+gulp+bower

    需要node.npm的事先安装!! 1.nodejs安装程序会在环境变量中添加两个变量: 系统环境变量中:path 增加C:\Program Files\nodejs\ 因为在该目下存在node.ex ...

  10. php中echo、print、print_r、printf的返回值

    1.echo 无返回值,是一个语言结构.在输出多个参数时不可以使用小括号; 2.print返回值为1:如:$x = 0; echo print $x."<br/>";/ ...