ashx中json数据解析

 #region 转换为dataset
        public void pageInitDataToJson()
        {
            DataTable dt = SQLHelp.SelectFill("select top(" + initPageRowCount.ToString() + ") * from view_tables  order by Datetime desc");
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            dataToJson(ds);
        }
        #endregion

-----------------------------------------------------------------------------------------------------------------------------------------------------

 

  #region dataset转换为json
        public void dataToJson(DataSet ds)
        {
            foreach (DataRow dr in ds.Tables[0].Rows)
            {

                string type;
                // string copyFrom;
                switch (dr["Orders"].ToString())
                {

                    case "0":
                        type = "text";
                        string Content;
                        //if (dr["Content"].ToString().Length > 200)
                        //    Content = dr["Content"].ToString().Substring(0, 199) + "....";
                        //else
                        Content = dr["Content"].ToString();

                        //if (dr["CopyFrom"].ToString() == "0")
                        //    copyFrom = "0";
                        //else
                        //    copyFrom = getBlogName(dr["CopyFrom"].ToString());
                        json.Append("{\"type\":" + "\"" + type + "\",");
                        json.Append("\"UserID\":" + "\"" + dr["User_ID"].ToString() + "\",");

                        json.Append("\"feverCount\":" + "\"" + GetFeverCount(dr["TypeID"].ToString(), dr["Orders"].ToString()) + "\",");
                        json.Append("\"count\":" + "\"" + BandReplyCount(dr["TypeID"].ToString(), dr["Orders"].ToString()) + "\",");//回应的所有个数
                        json.Append("\"TypeID\":" + "\"" + dr["TypeID"].ToString() + "\",");//回应所对应的节点的ID
                        json.Append("\"blogName\":" + "\"" + getBlogName(dr["User_ID"].ToString()) + "\",");
                        json.Append("\"title\":" + "\"" + string2Json(dr["Title"].ToString()) + "\",");
                        json.Append("\"content\":" + "\"" + string2Json(Content) + "\",");
                        json.Append("\"fever\":" + "\"" + dr["Fever"].ToString() + "\",");
                        //json.Append("\"copyfrom\":" + "\"" + copyFrom + "\",");
                        json.Append("\"lable\":" + "\"" + string2Json(dr["Lable"].ToString()) + "\"},");
                        break;
                    case "1":
                        type = "picture";

                        json.Append("{\"type\":" + "\"" + type + "\",");
                        json.Append("\"UserID\":" + "\"" + dr["User_ID"].ToString() + "\",");
                        json.Append("\"feverCount\":" + "\"" + GetFeverCount(dr["TypeID"].ToString(), dr["Orders"].ToString()) + "\",");
                        json.Append("\"count\":" + "\"" + +BandReplyCount(dr["TypeID"].ToString(), dr["Orders"].ToString()) + "\",");
                        json.Append("\"TypeID\":" + "\"" + dr["TypeID"].ToString() + "\",");
                        json.Append("\"discript\":" + "\"" + string2Json(dr["Content"].ToString()) + "\",");
                        json.Append("\"blogName\":" + "\"" + getBlogName(dr["User_ID"].ToString()) + "\",");
                        json.Append("\"imageUrl\":" + "\"" + dr["Title"].ToString() + "\",");
                        json.Append("\"fever\":" + "\"" + dr["Fever"].ToString() + "\",");
                        json.Append("\"lable\":" + "\"" + string2Json(dr["Lable"].ToString()) + "\"},");
                        break;
                    case "3":
                        type = "link";
                        json.Append("{\"type\":" + "\"" + type + "\",");
                        json.Append("\"UserID\":" + "\"" + dr["User_ID"].ToString() + "\",");
                        json.Append("\"feverCount\":" + "\"" + GetFeverCount(dr["TypeID"].ToString(), dr["Orders"].ToString()) + "\",");
                        json.Append("\"count\":" + "\"" + +BandReplyCount(dr["TypeID"].ToString(), dr["Orders"].ToString()) + "\",");
                        json.Append("\"TypeID\":" + "\"" + dr["TypeID"].ToString() + "\",");
                        json.Append("\"blogName\":" + "\"" + getBlogName(dr["User_ID"].ToString()) + "\",");
                        json.Append("\"discript\":" + "\"" + string2Json(dr["Discript"].ToString()) + "\",");
                        json.Append("\"url\":" + "\"" + dr["Content"].ToString() + "\",");
                        json.Append("\"title\":" + "\"" + string2Json(dr["Title"].ToString()) + "\",");
                        json.Append("\"fever\":" + "\"" + dr["Fever"].ToString() + "\",");
                        json.Append("\"lable\":" + "\"" + string2Json(dr["Lable"].ToString()) + "\"},");
                        break;
                    case "4":
                        type = "video";
                        json.Append("{\"type\":" + "\"" + type + "\",");
                        json.Append("\"UserID\":" + "\"" + dr["User_ID"].ToString() + "\",");
                        json.Append("\"feverCount\":" + "\"" + GetFeverCount(dr["TypeID"].ToString(), dr["Orders"].ToString()) + "\",");
                        json.Append("\"count\":" + "\"" + +BandReplyCount(dr["TypeID"].ToString(), dr["Orders"].ToString()) + "\",");
                        json.Append("\"TypeID\":" + "\"" + dr["TypeID"].ToString() + "\",");
                        json.Append("\"blogName\":" + "\"" + getBlogName(dr["User_ID"].ToString()) + "\",");
                        json.Append("\"videoUrl\":" + "\"" + dr["Title"].ToString() + "\",");
                        json.Append("\"imageUrl\":" + "\"" + dr["Content"].ToString() + "\",");
                        json.Append("\"discript\":" + "\"" + string2Json(dr["Discript"].ToString()) + "\",");
                        json.Append("\"fever\":" + "\"" + dr["Fever"].ToString() + "\",");
                        json.Append("\"lable\":" + "\"" + string2Json(dr["Lable"].ToString()) + "\"},");
                        break;
                }
                if (dr == ds.Tables[0].Rows[ds.Tables[0].Rows.Count - 1])
                {
                    json.Append("{\"type\":" + "\"" + "time" + "\",");
                    json.Append("\"time\":" + "\"" + dr["Datetime"].ToString() + "\"}");
                }
            }
            json.Append("]");
        }
        #endregion

 

-----------------------------------------------------------------------------------------------------------------------------------------------------

#region json解析
        public string string2Json(string s)
        {
            StringBuilder sb = new StringBuilder();

            char[] c = s.ToCharArray();
            for (int i = 0; i < c.Length; i++)
            {
                switch (c[i])
                {
                    case '\"':
                        sb.Append("\\\"");
                        break;
                    case '\\':
                        sb.Append("\\\\");
                        break;
                    case '/':
                        sb.Append("\\/");
                        break;
                    case '\b':
                        sb.Append("\\b");
                        break;
                    case '\f':
                        sb.Append("\\f");
                        break;
                    case '\n':
                        sb.Append("\\n");
                        break;
                    case '\r':
                        sb.Append("\\r");
                        break;
                    case '\t':
                        sb.Append("\\t");
                        break;
                    default:
                        sb.Append(c[i].ToString());
                        break;
                }
                StringBuilder show = sb;
            }
            return sb.ToString();
        }
        #endregion

posted @ 2015-08-14 10:45  只是很孤单  阅读(648)  评论(0编辑  收藏  举报