把DataSet转换成JSON

/// <summary> 
        /// dataTable转换成Json格式 
        /// </summary> 
        /// <param name="dt"></param> 
        /// <returns></returns> 
        public static string DataTable2Json(System.Data.DataTable dt)
        {
            System.Text.StringBuilder jsonBuilder = new System.Text.StringBuilder();
            jsonBuilder.Append("{\"Name\":\"" + dt.TableName + "\",\"Rows");
            jsonBuilder.Append("\":[");
            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().Trim().Replace("\"", "\\\"").Replace("\n", "").Replace("\r", "")); //对于特殊字符,还应该进行特别的处理。
                    jsonBuilder.Append("\",");
                }
                jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
                jsonBuilder.Append("},");
            }
            jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
            jsonBuilder.Append("]");
            jsonBuilder.Append("}");
            return jsonBuilder.ToString();
        }
        /// <summary> 
        /// DataSet转换成Json格式 
        /// </summary> 
        /// <param name="ds">DataSet</param> 
        /// <returns></returns> 
        public static string Dataset2Json(System.Data.DataSet ds)
        {
            System.Text.StringBuilder json = new System.Text.StringBuilder();
            json.Append("{\"Tables\":");
            json.Append("[");
            foreach (System.Data.DataTable dt in ds.Tables)
            {
                json.Append(DataTable2Json(dt));
                json.Append(",");
            }
            json.Remove(json.Length - 1, 1);
            json.Append("]");
            json.Append("}");
            return json.ToString();
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

 

把DataSet转换成JSON,记得把一些特殊字符处理下。

上面来源于网上的一段代码,因为没有处理换行和回车,所以转过去的JSON一直不通过。

这个方法暂时符合自己使用需求,等后续有什么特殊字符需要处理再进行添加

 

JSON在线解析:http://www.bejson.com/

posted @ 2014-04-14 20:23  Mark_ybh  阅读(1458)  评论(0编辑  收藏  举报