本文转载:http://www.cnblogs.com/liang--liang/archive/2013/02/05/2893030.html

public static string DataTable2Json(System.Data.DataTable dt)
{
System.Text.StringBuilder jsonBuilder = new System.Text.StringBuilder();
jsonBuilder.Append("{");
jsonBuilder.AppendFormat("\"total\":{0}, ", dt.Rows.Count);
jsonBuilder.Append("\"rows\":[ ");
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();
}

  本文学习中使用的:

  int pagNum = int.Parse(Request["page"].ToString());
int pageSize = int.Parse(Request["rows"].ToString());
string jsonStr = string.Empty;
UserInfoDataContextDataContext dbContext = new UserInfoDataContextDataContext("server=.;database=NorthWind;uid=sa;pwd=123456");
var userInfoLst = dbContext.UserInfo.Take(pageSize * pagNum).Skip((pagNum - 1) * pageSize).Select(s => s);
jsonStr = JsonHelper.ToJson(userInfoLst);
System.Text.StringBuilder jsonBuilder = new System.Text.StringBuilder();
jsonBuilder.Append("{");
jsonBuilder.AppendFormat("\"total\":{0}, ", dbContext.UserInfo.Count());
jsonBuilder.Append("\"rows\":");
jsonBuilder.AppendFormat("{0}", jsonStr);
jsonBuilder.Append("}");
return Content(jsonBuilder.ToString());

  JsonHelp代码段:

    /// <summary>
/// Json数据转换封装
/// </summary>
public static class JsonHelper
{
public static String ToJson(object obj)
{
return Newtonsoft.Json.JsonConvert.SerializeObject(obj);
}
}

  注意返回的Json格式,否则会导致datagrid不会显示数据的。

05-10 22:59