123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615 |
- /**************************************************
- * 版权所有:
- * 文 件 名: JSONHelper.cs
- * 文件描述:
- * 类型说明: JSONHelper JSON帮助类
- * 授权声明:
- * 版本历史:
- * v1.0.0 季健国 2010-07-03 新建
- ***************************************************/
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Text;
- using System.Web.Script.Serialization;
- namespace Ant.Service.Common
- {
- public class JsonHelper111
- {
- /// <summary>
- /// 对象[集合|嵌套对象]转JSON
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="obj">对象</param>
- /// <returns>标准JSON字符串</returns>
- /// 格式:{"key":"value","key":"value","key":"value"},{}
- public static string ToJSON<T>(T obj)
- {
- try
- {
- var js = new JavaScriptSerializer();
- js.RecursionLimit = 1;
- return js.Serialize(obj);
- }
- catch (Exception ex)
- {
- return ex.Message;
- }
- }
- /// <summary>
- /// 转Grid 标准Json字符串
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="obj"></param>
- /// <returns></returns>
- /// {"page":1,"total":1,"records":1,"rows":[{"address":"china","depName":"testName","user":"jayjay","depId":"123"}] }
- public static string ToGridJson<T>(T obj)
- {
- var jsonBuilder = new StringBuilder();
- jsonBuilder.Append("{\"page\":1,\"total\":" + "1" + ",\"records\":1,\"rows\"");
- jsonBuilder.Append(":[");
- jsonBuilder.Append(ToJSON(obj));
- jsonBuilder.Append("]}");
- return jsonBuilder.ToString();
- }
- /// <summary>
- /// 转Grid 标准字符串
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="list">The list.</param>
- /// <returns></returns>
- /// {"page":1,"total":0,"records":3,"rows":[{"address":"china","depName":"testName","user":"jayjay","depId":"123"},{}] }
- public static string ArrayToGridJson<T>(List<T> list)
- {
- var jsonBuilder = new StringBuilder();
- jsonBuilder.Append("{\"page\":1,\"total\":" + (list.Count / 10) + ",\"records\":" + list.Count + ",\"rows\"");
- jsonBuilder.Append(":");
- jsonBuilder.Append(ToJSON(list));
- jsonBuilder.Append("}");
- return jsonBuilder.ToString();
- }
- /// <summary>
- /// 转Grid 标准字符串
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="obj"></param>
- /// <returns></returns>
- /// {"page":1,"total":0,"records":3,"rows":[{"address":"china","depName":"testName","user":"jayjay","depId":"123"},{}] }
- public static string ObjListToGridJson(object[] list, int currentPage, int totalPages, int rows)
- {
- var jsonBuilder = new StringBuilder();
- jsonBuilder.Append("{\"page\":" + currentPage + ",\"total\":" + totalPages + ",\"records\":" + rows +
- ",\"rows\"");
- jsonBuilder.Append(":");
- jsonBuilder.Append(ToJSON(list));
- jsonBuilder.Append("}");
- return jsonBuilder.ToString();
- }
- /// <summary>
- /// Arrays to grid json without caption.
- /// </summary>
- /// <param name="DataArray">数据二维数组</param>
- /// <param name="CaptionArray">属性或者标题一维数组,顺序应与数据数组完全相同,且与第二维长度相等或者大于</param>
- /// <param name="currentPage">当前页面</param>
- /// <param name="rows">每页行数</param>
- /// <param name="TatolPageNumber">总页数,允许为空,为空时忽略掉此参数</param>
- /// <returns></returns>
- public static string ArrayToGridJsonWithoutCaption(object[] DataArray, string[] CaptionArray, int currentPage,
- int rows, int TatolPageNumber)
- {
- var jsonBuilder = new StringBuilder();
- jsonBuilder.Append("{\"page\":" + currentPage + ",\"total\":" + TatolPageNumber + ",\"records\":" + rows +
- ",\"rows\"");
- jsonBuilder.Append(":[");
- int i = 0, j = 0;
- foreach (object obj in DataArray)
- {
- if (0 < i)
- jsonBuilder.Append(",");
- var SubArray = (object[])obj;
- jsonBuilder.Append("{");
- foreach (object subobj in SubArray)
- {
- if (0 >= j)
- jsonBuilder.Append("\"" + CaptionArray[j] + "\":\"" + subobj + "\"");
- else
- jsonBuilder.Append(",\"" + CaptionArray[j] + "\":\"" + subobj + "\"");
- ++j;
- }
- jsonBuilder.Append("}");
- j = 0;
- ++i;
- }
- jsonBuilder.Append("]}");
- return jsonBuilder.ToString();
- }
- /// <summary>
- /// 转TreeGrid 标准字符串
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="obj"></param>
- /// <returns></returns>
- /// {"page":1,"total":0,"records":3,"rows":[{"id":"1",cell:["testName","jayjay","123"]}] }
- public static string IlistToGridJson<T>(IList<T> list)
- {
- var jsonBuilder = new StringBuilder();
- //jsonBuilder.Append("{\"page\":1,\"total\":" + (list.Count / 10) + ",\"records\":" + list.Count + ",\"rows\"");
- //jsonBuilder.Append(":[");
- //foreach (var t in list)
- //{
- // var tt = t as RolePermission;
- // if (tt != null)
- // {
- // jsonBuilder.Append("{");
- // Permission p = tt.Permission;
- // //权限Id
- // jsonBuilder.AppendFormat("id:{0},", p.Id);
- // jsonBuilder.Append("cell:[");
- // //权限name
- // jsonBuilder.Append("'" + p._Name + "',");
- // //权限url
- // jsonBuilder.Append("'" + p._Page + "',");
- // //
- // jsonBuilder.Append(0+",");
- // jsonBuilder.Append("null,");
- // jsonBuilder.Append(false+",");
- // jsonBuilder.Append(false);
- // jsonBuilder.Append("]}");
- // jsonBuilder.Append(",");
- // }
- //}
- //jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
- //jsonBuilder.Append("]");
- //jsonBuilder.Append("}");
- //json 生成
- //jsonBuilder.Append("{total:1,page:1,records:6,");
- //jsonBuilder.Append("rows:[");
- //jsonBuilder.Append("{id:1,cell:['Tabelle','1a2',0,null,false,false]},");
- //jsonBuilder.Append("{id:2,cell:['Tabelle','1a2',0,null,false,false]}");
- //jsonBuilder.Append("]}");
- //xml 生成
- //jsonBuilder.Append("<?xml version='1.0' encoding='utf-8' ?>");
- //jsonBuilder.Append("<rows>");
- //jsonBuilder.Append("<row>");
- //jsonBuilder.Append("<cell>1</cell>");
- //jsonBuilder.Append("<cell>系统管理</cell>");
- //jsonBuilder.Append("<cell />");
- //jsonBuilder.Append("<cell>0</cell>");
- //jsonBuilder.Append("<cell>1</cell>");
- //jsonBuilder.Append("<cell>14</cell>");
- //jsonBuilder.Append("<cell>false</cell>");
- //jsonBuilder.Append("<cell>false</cell>");
- //jsonBuilder.Append("</row>");
- //jsonBuilder.Append("<row>");
- //jsonBuilder.Append("<cell>2</cell>");
- //jsonBuilder.Append("<cell>部门维护</cell>");
- //jsonBuilder.Append("<cell>SysManage/SysDepList.aspx</cell>");
- //jsonBuilder.Append("<cell>1</cell>");
- //jsonBuilder.Append("<cell>2</cell>");
- //jsonBuilder.Append("<cell>3</cell>");
- //jsonBuilder.Append("<cell>true</cell>");
- //jsonBuilder.Append("<cell>true</cell>");
- //jsonBuilder.Append("</row>");
- //foreach (T t in list)
- //{
- // var tt = t as RolePermission;
- // if (null != tt)
- // {
- // jsonBuilder.Append("<row>");
- // jsonBuilder.Append("<cell>1</cell>");
- // jsonBuilder.Append("<cell>"+tt.Permission._Name+"</cell>");
- // if (string.IsNullOrEmpty(tt.Permission._Page))
- // {
- // jsonBuilder.Append("<cell />");
- // jsonBuilder.Append("<cell>0</cell>");
- // jsonBuilder.Append("<cell>1</cell>");
- // jsonBuilder.Append("<cell>14</cell>");
- // jsonBuilder.Append("<cell>false</cell>");
- // jsonBuilder.Append("<cell>false</cell>");
- // }
- // else
- // {
- // jsonBuilder.Append("<cell>SysManage/SysDepList.aspx</cell>");
- // jsonBuilder.Append("<cell>0</cell>");
- // jsonBuilder.Append("<cell>1</cell>");
- // jsonBuilder.Append("<cell>14</cell>");
- // jsonBuilder.Append("<cell>false</cell>");
- // jsonBuilder.Append("<cell>false</cell>");
- // }
- // jsonBuilder.Append("</row>");
- // }
- //}
- //jsonBuilder.Append("</rows>");
- return jsonBuilder.ToString();
- }
- ///// <summary>
- ///// 【角色维护】中的【权限列表】 to Gridjson 数据
- ///// </summary>
- ///// <param name="list"></param>
- ///// <param name="currentPage"></param>
- ///// <param name="totalPages"></param>
- ///// <param name="rows"></param>
- ///// <returns></returns>
- //public static string powList2Gridjson(object[] list, int currentPage, int totalPages, int rows)
- //{
- // var jsonBuilder = new StringBuilder();
- // jsonBuilder.Append("{\"page\":" + currentPage + ",\"total\":" + totalPages + ",\"records\":" + list.Length +
- // ",\"rows\"");
- // jsonBuilder.Append(":[");
- // foreach (object rowData in list)
- // {
- // if (null != rowData)
- // {
- // var p = (Permission) rowData;
- // jsonBuilder.Append("{");
- // jsonBuilder.Append("\"Id\":\"" + p.Id + "\","); //[ID]绑定
- // jsonBuilder.Append("\"_Name\":\"" + p._Name + "\","); //[Name]绑定
- // jsonBuilder.Append("\"_Page\":\"" + p._Page + "\","); //[page]绑定
- // //判断【该页是否有此功能】
- // if ("0" != p._Read.ToString())
- // {
- // jsonBuilder.Append("\"_Read\":\"" +
- // "<input type='checkbox' onclick='return onCheck(this.id);' id='" +
- // p.Id + "_Read' value='" + p._Read + "' />" + "\","); //[_read]绑定
- // }
- // else
- // {
- // jsonBuilder.Append("\"_Read\":\"" +
- // "<input type='checkbox'onclick='return onCheck(this.id);' disabled='disabled' id='" +
- // p.Id + "_Read' value='" + p._Read + "' />" + "\","); //[_read]绑定
- // }
- // //判断【该页是否有此功能】
- // if ("0" != p._Write.ToString())
- // {
- // jsonBuilder.Append("\"_Write\":\"" +
- // "<input type='checkbox'onclick='return onCheck(this.id);' onclick='onCheck();' id='" +
- // p.Id + "_Write' value='" + p._Write + "' />" + "\","); //[_write]绑定
- // }
- // else
- // {
- // jsonBuilder.Append("\"_Write\":\"" +
- // "<input type='checkbox'onclick='return onCheck(this.id);' disabled='disabled' id='" +
- // p.Id + "_Write' value='" + p._Write + "' />" + "\","); //[_write]绑定
- // }
- // //判断【该页是否有此功能】
- // if ("0" != p._Delete.ToString())
- // {
- // jsonBuilder.Append("\"_Delete\":\"" +
- // "<input type='checkbox'onclick='return onCheck(this.id);' onclick='onCheck();' id='" +
- // p.Id + "_Delete' value='" + p._Delete + "' />" + "\","); //[_delte]绑定
- // }
- // else
- // {
- // jsonBuilder.Append("\"_Delete\":\"" + "<input type='checkbox' disabled='disabled' id='" + p.Id +
- // "_Delete' value='" + p._Delete + "' />" + "\","); //[_delete]绑定
- // }
- // //判断【该页是否有此功能】
- // if ("0" != p._Update.ToString())
- // {
- // jsonBuilder.Append("\"_Update\":\"" +
- // "<input type='checkbox'onclick='return onCheck(this.id);' onclick='onCheck();' id='" +
- // p.Id + "_Update' value='" + p._Update + "' />" + "\","); //[_update]绑定
- // }
- // else
- // {
- // jsonBuilder.Append("\"_Update\":\"" + "<input type='checkbox' disabled='disabled' id='" + p.Id +
- // "_Update' value='" + p._Update + "' />" + "\","); //[_update]绑定
- // }
- // //判断【该页是否有此功能】
- // if ("0" != p._Cancel.ToString())
- // {
- // jsonBuilder.Append("\"_Cancel\":\"" +
- // "<input type='checkbox' onclick='return onCheck(this.id);' id='" + p.Id +
- // "_Cancel' value='" + p._Cancel + "' />" + "\","); //[_cancel解除]绑定
- // }
- // else
- // {
- // jsonBuilder.Append("\"_Cancel\":\"" + "<input type='checkbox' disabled='disabled' id='" + p.Id +
- // "_Cancel' value='" + p._Cancel + "' />" + "\","); //[_cancel解除]绑定
- // }
- // //判断【该页是否有此功能】
- // if ("0" != p._Audit.ToString())
- // {
- // jsonBuilder.Append("\"_Audit\":\"" +
- // "<input type='checkbox' onclick='return onCheck(this.id);' id='" + p.Id +
- // "_Audit' value='" + p._Audit + "' />" + "\""); //[_audit 审核]绑定
- // }
- // else
- // {
- // jsonBuilder.Append("\"_Audit\":\"" + "<input type='checkbox' disabled='disabled' id='" + p.Id +
- // "_Audit' value='" + p._Audit + "' />" + "\""); //[_audit 审核]绑定
- // }
- // jsonBuilder.Append("}");
- // jsonBuilder.Append(",");
- // }
- // }
- // jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
- // jsonBuilder.Append("]}");
- // return jsonBuilder.ToString();
- //}
- ////------------------------------------------------------------------------
- ///// <summary>
- ///// 【角色维护】中的【权限列表】 to Gridjson 数据
- ///// </summary>
- ///// <param name="list"></param>
- ///// <param name="currentPage"></param>
- ///// <param name="totalPages"></param>
- ///// <param name="rows"></param>
- ///// <returns></returns>
- //public static string powList2GridjsonForView(object[] list, int currentPage, int totalPages, int rows)
- //{
- // var jsonBuilder = new StringBuilder();
- // jsonBuilder.Append("{\"page\":" + currentPage + ",\"total\":" + totalPages + ",\"records\":" + list.Length +
- // ",\"rows\"");
- // jsonBuilder.Append(":[");
- // foreach (object rowData in list)
- // {
- // if (null != rowData)
- // {
- // var p = (Permission) rowData;
- // jsonBuilder.Append("{");
- // jsonBuilder.Append("\"Id\":\"" + p.Id + "\","); //[ID]绑定
- // jsonBuilder.Append("\"_Name\":\"" + p._Name + "\","); //[Name]绑定
- // jsonBuilder.Append("\"_Page\":\"" + p._Page + "\","); //[page]绑定
- // //判断【该页是否有此功能】
- // if ("0" != p._Read.ToString())
- // {
- // jsonBuilder.Append("\"_Read\":\"" +
- // "<input type='checkbox' onclick='return onCheck(this.id);' id='" +
- // p.Id + "Read' value='" + p._Read + "' checked=checked disabled='disabled' />" +
- // "\","); //[_read]绑定
- // }
- // else
- // {
- // jsonBuilder.Append("\"_Read\":\"" +
- // "<input type='checkbox'onclick='return onCheck(this.id);' disabled='disabled' id='" +
- // p.Id + "Read' value='" + p._Read + "' />" + "\","); //[_read]绑定
- // }
- // //判断【该页是否有此功能】
- // if ("0" != p._Write.ToString())
- // {
- // jsonBuilder.Append("\"_Write\":\"" +
- // "<input type='checkbox'onclick='return onCheck(this.id);' onclick='onCheck();' id='" +
- // p.Id + "Write' value='" + p._Write +
- // "' checked=checked disabled='disabled' />" + "\","); //[_write]绑定
- // }
- // else
- // {
- // jsonBuilder.Append("\"_Write\":\"" +
- // "<input type='checkbox'onclick='return onCheck(this.id);' disabled='disabled' id='" +
- // p.Id + "Write' value='" + p._Write + "' />" + "\","); //[_write]绑定
- // }
- // //判断【该页是否有此功能】
- // if ("0" != p._Delete.ToString())
- // {
- // jsonBuilder.Append("\"_Delete\":\"" +
- // "<input type='checkbox' checked=checked disabled='disabled' onclick='return onCheck(this.id);' onclick='onCheck();' id='" +
- // p.Id + "Delete' value='" + p._Delete + "' />" + "\","); //[_delte]绑定
- // }
- // else
- // {
- // jsonBuilder.Append("\"_Delete\":\"" + "<input type='checkbox' disabled='disabled' id='" + p.Id +
- // "Delete' value='" + p._Delete + "' />" + "\","); //[_delete]绑定
- // }
- // //判断【该页是否有此功能】
- // if ("0" != p._Update.ToString())
- // {
- // jsonBuilder.Append("\"_Update\":\"" +
- // "<input type='checkbox' checked=checked disabled='disabled' onclick='return onCheck(this.id);' onclick='onCheck();' id='" +
- // p.Id + "Update' value='" + p._Update + "' />" + "\","); //[_update]绑定
- // }
- // else
- // {
- // jsonBuilder.Append("\"_Update\":\"" + "<input type='checkbox' disabled='disabled' id='" + p.Id +
- // "Update' value='" + p._Update + "' />" + "\","); //[_update]绑定
- // }
- // //判断【该页是否有此功能】
- // if ("0" != p._Cancel.ToString())
- // {
- // jsonBuilder.Append("\"_Cancel\":\"" +
- // "<input type='checkbox' checked=checked disabled='disabled' onclick='return onCheck(this.id);' id='" +
- // p.Id +
- // "Cancel' value='" + p._Cancel + "' />" + "\","); //[_cancel解除]绑定
- // }
- // else
- // {
- // jsonBuilder.Append("\"_Cancel\":\"" + "<input type='checkbox' disabled='disabled' id='" + p.Id +
- // "Cancel' value='" + p._Cancel + "' />" + "\","); //[_cancel解除]绑定
- // }
- // //判断【该页是否有此功能】
- // if ("0" != p._Audit.ToString())
- // {
- // jsonBuilder.Append("\"_Audit\":\"" +
- // "<input type='checkbox' checked=checked disabled='disabled' onclick='return onCheck(this.id);' id='" +
- // p.Id +
- // "Audit' value='" + p._Audit + "' />" + "\""); //[_audit 审核]绑定
- // }
- // else
- // {
- // jsonBuilder.Append("\"_Audit\":\"" + "<input type='checkbox' disabled='disabled' id='" + p.Id +
- // "Audit' value='" + p._Audit + "' />" + "\""); //[_audit 审核]绑定
- // }
- // jsonBuilder.Append("}");
- // jsonBuilder.Append(",");
- // }
- // }
- // jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
- // jsonBuilder.Append("]}");
- // return jsonBuilder.ToString();
- //}
- //------------------------------------------------------------------------
- /// <summary>
- /// JSON转对象
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="json">The json.</param>
- /// <returns>obj</returns>
- public static T ToObject<T>(string json)
- {
- try
- {
- var js = new JavaScriptSerializer();
- return js.Deserialize<T>(json);
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- /// <summary>
- /// JSON转对象
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="j">The j.</param>
- /// <returns>obj[]对象集合</returns>
- public static object[] JSONToArray<T>(string j)
- {
- try
- {
- var js = new JavaScriptSerializer();
- return js.DeserializeObject(j) as object[];
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- #region DataSet 转 JSON
- /// <summary>
- /// DataTable转换成Json格式
- /// </summary>
- /// <param name="dt">DataTable</param>
- /// <returns>JSON字符串</returns>
- /// 格式如:{"rows":[{"id":0,"cell":["address":"china","depName":"testName","user":"jayjay","depId":"123"]},....]}
- public static string DataTable2Json(DataTable dt)
- {
- var jsonBuilder = new StringBuilder();
- 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("\"" + dt.Columns[j].ColumnName + "\"" + ":" + "\"" + dt.Rows[i][j] + "\"");
- jsonBuilder.Append(",");
- }
- jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
- jsonBuilder.Append("},");
- }
- jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
- jsonBuilder.Append("]");
- jsonBuilder.Append("}");
- return jsonBuilder.ToString();
- }
- /// <summary>
- /// DataSet 转 JSON
- /// </summary>
- /// <param name="ds">DataSet</param>
- /// <returns>JSON字符串</returns>
- public static string DataSet2Json(DataSet ds)
- {
- var strJson = new StringBuilder();
- foreach (DataTable dt in ds.Tables)
- {
- strJson.Append("{\"");
- strJson.Append(dt.TableName);
- strJson.Append("\":");
- strJson.Append(DataTable2Json(dt));
- strJson.Append("}");
- }
- return strJson.ToString();
- }
- /// <summary>
- /// DataTable转GridJson
- /// </summary>
- /// <param name="dt">DataTable</param>
- /// <returns>Grid json字符串</returns>
- public static string DTToGridJson(DataTable dt)
- {
- var jsonBuilder = new StringBuilder();
- jsonBuilder.Append("{\"page\":1,\"total\":" + (dt.Rows.Count / 10) + ",\"records\":" + dt.Rows.Count +
- ",\"rows\"");
- jsonBuilder.Append(":[");
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- jsonBuilder.Append("{");
- for (int j = 0; j < dt.Columns.Count; j++)
- {
- jsonBuilder.Append("\"" + dt.Columns[j].ColumnName + "\"" + ":" + "\"" + dt.Rows[i][j] + "\"");
- jsonBuilder.Append(",");
- }
- jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
- jsonBuilder.Append("},");
- }
- jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
- jsonBuilder.Append("]");
- jsonBuilder.Append("}");
- return jsonBuilder.ToString();
- }
- public static string DTToGridJson(DataTable dt, int currentPage, int totalPages, int pageRecorder)
- {
- var jsonBuilder = new StringBuilder();
- jsonBuilder.Append("{\"page\":" + currentPage + ",\"total\":" +
- Math.Ceiling(totalPages / double.Parse(pageRecorder.ToString())) + ",\"records\":" +
- totalPages +
- ",\"rows\"");
- jsonBuilder.Append(":[");
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- jsonBuilder.Append("{");
- for (int j = 0; j < dt.Columns.Count; j++)
- {
- jsonBuilder.Append("\"" + dt.Columns[j].ColumnName + "\"" + ":" + "\"" + dt.Rows[i][j] + "\"");
- jsonBuilder.Append(",");
- }
- jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
- jsonBuilder.Append("},");
- }
- if (',' == jsonBuilder[jsonBuilder.Length - 1])
- {
- jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
- }
- jsonBuilder.Append("]");
- jsonBuilder.Append("}");
- return jsonBuilder.ToString();
- }
- #endregion
- }
- }
|