C#如何将datatable数据转换成json 30

varindexdata2=[{isexpand:'true',text:'根节点',children:[{isexpand:'true',text:"子节点",chil... var indexdata2 =
[
{ isexpand: 'true', text: '根节点', children: [
{ isexpand: 'true', text: "子节点", children: [
{ url: 'a.aspx', text: '子节点1' },
{ url: 'b.aspx', text: '子节点2' },
{ url: 'c.aspx', text: '子节点3' }
]
}]
}
];
如上是我要转换的格式,我要查询菜单,先查出根节点,再根据根节点id查出相应子节点,依次查下去,得到的数据转成json,赋值给前台js变量。怎么做?
展开
 我来答
百度网友87b2a52
2013-03-17 · 知道合伙人软件行家
百度网友87b2a52
知道合伙人软件行家
采纳数:523 获赞数:3490
毕业于南京大学,硕士学位。10年软件研发经验。现任信息系统架构师。

向TA提问 私信TA
展开全部
/// <summary>
/// 将datatable转换为json
/// </summary>
/// <param name="dtb">Dt</param>
/// <returns>JSON字符串</returns>
public static string Dtb2Json(DataTable dtb)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
System.Collections.ArrayList dic = new System.Collections.ArrayList();
foreach (DataRow dr in dtb.Rows)
{
System.Collections.Generic.Dictionary<string, object> drow = new System.Collections.Generic.Dictionary<string, object>();
foreach (DataColumn dc in dtb.Columns)
{
drow.Add(dc.ColumnName, dr[dc.ColumnName]);
}
dic.Add(drow);

}
//序列化
return jss.Serialize(dic);
}
追问
没明白,
1. 我查询根节点保存到datatable1, 然后查询下级几点保存到datatable2 ....
2. 前台js变量定义的是 var indexdata2, 怎么把后台值传给indexdata2

???
百度网友c6254c4
2013-03-19
知道答主
回答量:6
采纳率:0%
帮助的人:8936
展开全部
这个命名空间要要引入using System.Web.Script.Serialization;

JavaScriptSerializer js = new JavaScriptSerializer();

js.Serialize() 括号中填你需要序列化的东西
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式