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