c#对象/datatable转json
dataTable中有多行数据(返回的结果用于前台table的渲染)
public static string DataTableToJson(DataTable dt) { List<Dictionary<string, object>> list = new List<Dictionary<string, object>>(); foreach (DataRow dr in dt.Rows) { Dictionary<string, object> result = new Dictionary<string, object>(); foreach (DataColumn dc in dt.Columns) { result.Add(dc.ColumnName, dr[dc]); } list.Add(result); } int recursionLimit = 100; JavaScriptSerializer serialize = new JavaScriptSerializer(); serialize.RecursionLimit = recursionLimit; serialize.MaxJsonLength = Int32.MaxValue; return serialize.Serialize(list); }
dataTable中有一行数据,转json的方法和对象转json的方法一样
DataTable dt=mysql.SelectUserbyID(id).Tables[0]; string json = JsonConvert.SerializeObject(dt);
返回前台的json字符串外面有一层中括号
[{"UserID":2,"UserNo":"1002","UserName":"用户2","Password":"ADczQ+KeeZG2g8w3HwQrM2EVpzytTAytDyXF/Ar8JW126Kn5mrm7N58ZGei+YdoMtg==","Description":"xxz","Creator":"admin","CreationTime":"2020-12-28T11:13:56","Status":1,"DeptID":2,"Sex":0,"Phone":"123123","LastLoginTime":null}]
前台ajax取值
$.ajax({ url: "../../Handler/doUser.ashx?act=5", type: "post", async: false, data: { Fid: id }, dataType: "text", success: function (data) { data = jQuery.parseJSON(data); form.val("formTestFilter", { "UserID": id , "username": data[0].UserName , "DeptID": data[0].dept , "Phone": data[0].Phone , "sex": data[0].Sex , "desc": data[0].Description , "userno": data[0].UserID }); } });