转:Jquery json的超强组合(DataTable2JSON)
原文:http://www.cnblogs.com/symjie520/archive/2008/07/21/1155997.html
今天使用了jquery提供的对json的操作的函数,感觉超级爽哦!下面就把代码贴出
js
function getjson()2
{3
$("[id=ready]").remove();//返回id=ready的所有dom元素4

5
$.ajax(6
{7
type:"get",8
dataType:"json",9
url:"jspage.aspx",10
data:"id=1",11
success:function(msg)12
{13
var data=msg.bbslist; 14
//$("#databox").html(msg);15
//cleartext();16
$.each(data,function(i,n)17
{ 18
var row=$("#temp").clone();19
row.find("#listtile").text(n.listtile);20
row.find("#listvalue").text(n.listvalue);21
row.attr("id","ready"); 22
row.appendTo("#mainbox");23
} 24
);25
26
}27
}28
);29
}html代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2
<html xmlns="http://www.w3.org/1999/xhtml" >3
<head>4
<title>Untitled Page</title>5
<link href="jspage.css" rel="Stylesheet" />6
<script language="javascript" src="../jscript/jquery.js"></script> 7
</head>8
<body onload="getjson();">9
<div id="setpage"></div>10
<div id="mainbox">11
<div id="temp">12
<div id="listtile"></div>13
<div id="listvalue"></div>14
</div>15
</div>16
</body>17
</html>18

C#
using System;2
using System.Data;3
using System.Configuration;4
using System.Web;5
using System.Web.Security;6
using System.Web.UI;7
using System.Web.UI.WebControls;8
using System.Web.UI.WebControls.WebParts;9
using System.Web.UI.HtmlControls;10
using System.Text;11
/// <summary>12
/// Summary description for DataTableToJSON13
/// </summary>14
public class DataTableToJSON15
{16
public DataTableToJSON()17
{18
//19
// TODO: Add constructor logic here20
//21
}22
public static string DtToSON(DataTable dt)23
{24
StringBuilder jsonBuilder = new StringBuilder();25
jsonBuilder.Append("{\"");26
jsonBuilder.Append(dt.TableName.ToString());27
jsonBuilder.Append("\":[");28
for (int i = 0; i < dt.Rows.Count; i++)29
{30
jsonBuilder.Append("{");31
for (int j = 0; j < dt.Columns.Count; j++)32
{33
jsonBuilder.Append("\"");34
jsonBuilder.Append(dt.Columns[j].ColumnName);35
jsonBuilder.Append("\":\"");36
jsonBuilder.Append(dt.Rows[i][j].ToString());37
jsonBuilder.Append("\",");38
}39
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);40
jsonBuilder.Append("},");41
}42
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);43
jsonBuilder.Append("]");44
jsonBuilder.Append("}");45
return jsonBuilder.ToString();46
}47
}48

这就是主要的代码了,相信各位都会组合吧,我就不再多介绍了,大家体会一下哈!
//DataTable转成Json
public static string DataTableToJson(string jsonName, 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();
}
//List转成json
public static string ObjectToJson<T>(string jsonName, IList<T> IL)
{
StringBuilder Json = new StringBuilder();
Json.Append("{\"" + jsonName + "\":[");
if (IL.Count > 0)
{
for (int i = 0; i < IL.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(IL[i], null) + "\"");
if (j < pis.Length - 1)
{
Json.Append(",");
}
}
Json.Append("}");
if (i < IL.Count - 1)
{
Json.Append(",");
}
}
}
Json.Append("]}");
return Json.ToString();
}

浙公网安备 33010602011771号