将DATAtable转换成 json格式

public class DataTableConvertJson

    {

 

        #region dataTable转换成Json格式

        /// <summary>  

        /// dataTable转换成Json格式  

        /// </summary>  

        /// <param name="dt"></param>  

        /// <returns></returns>  

        public static string DataTable2Json(DataTable dt)

        {

            StringBuilder jsonBuilder = new StringBuilder();

            jsonBuilder.Append("{\"");

            jsonBuilder.Append(dt.TableName);

            jsonBuilder.Append("\":[");

            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());

                    jsonBuilder.Append("\",");

                }

                jsonBuilder.Remove(jsonBuilder.Length - 1, 1);

                jsonBuilder.Append("},");

            }

            jsonBuilder.Remove(jsonBuilder.Length - 1, 1);

            jsonBuilder.Append("]");

            jsonBuilder.Append("}");

            return jsonBuilder.ToString();

        }

 

        #endregion dataTable转换成Json格式

        #region DataSet转换成Json格式

        /// <summary>  

        /// DataSet转换成Json格式  

        /// </summary>  

        /// <param name="ds">DataSet</param> 

        /// <returns></returns>  

        public static string Dataset2Json(DataSet ds)

        {

            StringBuilder json = new StringBuilder();

 

            foreach (DataTable dt in ds.Tables)

            {

                json.Append("{\"");

                json.Append(dt.TableName);

                json.Append("\":");

                json.Append(DataTable2Json(dt));

                json.Append("}");

            } return json.ToString();

        }

        #endregion

 

        /// <summary>

        /// Msdn

        /// </summary>

        /// <param name="jsonName"></param>

        /// <param name="dt"></param>

        /// <returns></returns>

        public static string DataTableToJson(string jsonName, DataTable dt)

        {

            StringBuilder Json = new StringBuilder();

            Json.Append("{\"" + jsonName + "\":[");

            if (dt.Rows.Count > 0)

            {

                for (int i = 0; i < dt.Rows.Count; i++)

                {

                    Json.Append("{");

                    for (int j = 0; j < dt.Columns.Count; j++)

                    {

                        Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":\"" + dt.Rows[i][j].ToString() + "\"");

                        if (j < dt.Columns.Count - 1)

                        {

                            Json.Append(",");

                        }

                    }

                    Json.Append("}");

                    if (i < dt.Rows.Count - 1)

                    {

                        Json.Append(",");

                    }

                }

            }

            Json.Append("]}");

            return Json.ToString();

        }

 

        /// <summary>

        /// IList转换JOSN

        /// </summary>

        /// <param name="jsonName"></param>

        /// <param name="dt"></param>

        /// <returns></returns>

                public static string ObjectToJson<T>(string jsonName, IList<T> IL)
                {
                    StringBuilder Json = new StringBuilder();
                    Json.Append("{\"" + jsonName + "\":[");
                    if (IL.Count > 0)
                    {
                        for (int i = 0; i < IL.Count; i++)
                        {
                            T obj = Activator.CreateInstance<T>();
                            Type type = obj.GetType();
                            PropertyInfo[] pis = type.GetProperties();
                            Json.Append("{");
                            for (int j = 0; j < pis.Length; j++)
                            {
                                Json.Append("\"" + pis[j].Name.ToString() + "\":\"" + pis[j].GetValue(IL[i], null) + "\"");
                                if (j < pis.Length - 1)
                                {
                                    Json.Append(",");
                                }
                            }
                            Json.Append("}");
                            if (i < IL.Count - 1)
                            {
                                Json.Append(",");
                            }
                        }
                    }
                    Json.Append("]}");
                    return Json.ToString();
                }

    }

posted @ 2015-07-03 16:51  一统江湖  阅读(369)  评论(0编辑  收藏  举报