dataset list 转json

//dataset转json  

 public  string DataTable2Json(DataTable dt)

        {
            if (dt != null && dt.Rows.Count > 0)
            {
                StringBuilder jsonBuilder = new StringBuilder();
                jsonBuilder.Append("{");
                jsonBuilder.Append("ds");
                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();
            }
            else
            {
                return "{ds:{}}";
            }
        }

 //list转json

   public string ObjectToJson<T>(string jsonName, IList<T> t)

        {

            StringBuilder Json = new StringBuilder();

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

            if (t.Count > 0)

            {

                for (int i = 0; i < t.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(t[i], null) + "\"");

                        if (j < pis.Length - 1)

                        {

                            Json.Append(",");

                        }

                        else

                        {

                            Json.Append("}");

                        }

                        if (i < t.Count - 1)

                        {

                            Json.Append(",");

                        }

                    }

                }

            }

            Json.Append("]}");

            return Json.ToString();

        }

 如果是list<string>会有问题,下一篇文章会有解决方法

 

posted @ 2010-07-14 16:14  艾伦  阅读(1349)  评论(1编辑  收藏  举报