json datatable

  /// <summary>

        /// 将JSON解析成DataTable,只限DataGrid标准的JSON数据

        /// 例如:Json={\"rows\":[{\"code\":\"001\",\"name\":\"Name 1\"},{\"code\":\"002\",\"name\":\"Name 2\"}]}";

        /// </summary>

        /// <param name="json">Json字符传</param>

        /// <returns>DataTable</returns>

        public static DataTable JsonToDataTable(string Json)

        {

            try

            {

                DataTable dt = new DataTable();

                JavaScriptSerializer JSS = new JavaScriptSerializer();



                object obj = JSS.DeserializeObject(Json);

                Dictionary<string, object> datajson = (Dictionary<string, object>)obj;



                //string total = datajson["total"].ToString();



                object[] rows = (object[])datajson["rows"];

                foreach (object ob in rows)

                {

                    Dictionary<string, object> val = (Dictionary<string, object>)ob;

                    DataRow dr = dt.NewRow();

                    foreach (KeyValuePair<string, object> sss in val)

                    {

                        if (!dt.Columns.Contains(sss.Key))

                        {

                            dt.Columns.Add(sss.Key.ToString());

                            dr[sss.Key] = sss.Value;

                        }

                        else

                            dr[sss.Key] = sss.Value;

                    }

                    dt.Rows.Add(dr);

                }

                return dt;

            }

            catch

            {

                return null;

            }

        }











        /// <summary>

        /// DataTable to json

        /// </summary>

        /// <param name="jsonName">返回json的名称</param>

        /// <param name="dt">转换成json的表</param>

        /// <returns>string</returns>

        public static string DataTableToJson(string jsonName, System.Data.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();

        }

 

 

你可能感兴趣的:(Datatable)