转自 http://www.cnblogs.com/WikStone/archive/2012/07/02/2573137.html

目前项目没有使用第三方的json转换库,都是根据json格式进行字符串拼接。

生成Combobox json格式:

 /// <summary>
/// 生成Combobox JSON格式
/// </summary>
/// <param name="dt">数据源DataTable</param>
/// <returns>Combobox的json格式 [{ "id":1,"text":"text1"}] </returns>
public static string CreateJsonDictClass(DataTable dt)
{
StringBuilder JsonString = new StringBuilder();
//Exception Handling if (dt != null)
{
JsonString.Append("[");
for (int i = ; i < dt.Rows.Count; i++)
{
if(i<dt.Rows.Count-)
{ JsonString.Append("{ ");
JsonString.Append("\"id\": ");
JsonString.Append(dt.Rows[i]["ID"] +",");
JsonString.Append("\"text\": ");
JsonString.Append("\"" + dt.Rows[i]["Title"]+"\"");
JsonString.Append("},");
}
if (i == dt.Rows.Count - )
{
JsonString.Append("{ ");
JsonString.Append("\"id\": ");
JsonString.Append(dt.Rows[i]["ID"] + ",");
JsonString.Append("\"text\": ");
JsonString.Append("\"" + dt.Rows[i]["Title"] + "\"");
JsonString.Append("}"); }
}
JsonString.Append("]");
return JsonString.ToString();
} else
return null;
}

生成DataGrid json格式:

 /// <summary>
/// 将DataTable中的数据转换成JSON格式
/// </summary>
/// <param name="dt">数据源DataTable</param>
/// <param name="displayCount">是否输出数据总条数</param>
/// <param name="totalcount">JSON中显示的数据总条数</param>
/// <returns></returns>
public static string CreateJsonParameters(DataTable dt, bool displayCount, int totalcount)
{
StringBuilder JsonString = new StringBuilder();
//Exception Handling if (dt != null)
{
JsonString.Append("{ ");
JsonString.Append("\"rows\":[ ");
for (int i = ; i < dt.Rows.Count; i++)
{
JsonString.Append("{ ");
for (int j = ; j < dt.Columns.Count; j++)
{
if (j < dt.Columns.Count - )
{
//if (dt.Rows[i][j] == DBNull.Value) continue;
if (dt.Columns[j].DataType == typeof(bool))
{
JsonString.Append("\"JSON_" + dt.Columns[j].ColumnName.ToLower() + "\":" +
dt.Rows[i][j].ToString().ToLower() + ",");
}
else if (dt.Columns[j].DataType == typeof(string))
{
JsonString.Append("\"JSON_" + dt.Columns[j].ColumnName.ToLower() + "\":" + "\"" +
dt.Rows[i][j].ToString().Replace("\"", "\\\"") + "\",");
}
else
{
JsonString.Append("\"JSON_" + dt.Columns[j].ColumnName.ToLower() + "\":" + "\"" + dt.Rows[i][j] + "\",");
}
}
else if (j == dt.Columns.Count - )
{
//if (dt.Rows[i][j] == DBNull.Value) continue;
if (dt.Columns[j].DataType == typeof(bool))
{
JsonString.Append("\"JSON_" + dt.Columns[j].ColumnName.ToLower() + "\":" +
dt.Rows[i][j].ToString().ToLower());
}
else if (dt.Columns[j].DataType == typeof(string))
{
JsonString.Append("\"JSON_" + dt.Columns[j].ColumnName.ToLower() + "\":" + "\"" +
dt.Rows[i][j].ToString().Replace("\"", "\\\"") + "\"");
}
else
{
JsonString.Append("\"JSON_" + dt.Columns[j].ColumnName.ToLower() + "\":" + "\"" + dt.Rows[i][j] + "\"");
}
}
}
/*end Of String*/
if (i == dt.Rows.Count - )
{
JsonString.Append("} ");
}
else
{
JsonString.Append("}, ");
}
}
JsonString.Append("]"); if (displayCount)
{
JsonString.Append(","); JsonString.Append("\"total\":");
JsonString.Append(totalcount);
} JsonString.Append("}");
return JsonString.ToString().Replace("\n", "");
}
else
{
return null;
}
}

生成Tree      json格式:

/// <summary>    /// 根据DataTable生成Json树结构    /// </summary>    /// <param name="tabel">数据源</param>    /// <param name="idCol">ID列</param>    /// <param name="txtCol">Text列</param>    /// <param name="rela">关系字段</param>    /// <param name="pId">父ID</param>    StringBuilder result = new StringBuilder();    StringBuilder sb = new StringBuilder();    private void GetTreeJsonByTable(DataTable tabel, string idCol, string txtCol, string rela, object pId)    {        result.Append(sb.ToString());        sb.Clear();        if (tabel.Rows.Count > 0)        {            sb.Append("[");            string filer = string.Format("{0}='{1}'", rela, pId);            DataRow[] rows = tabel.Select(filer);            if (rows.Length > 0)            {                foreach (DataRow row in rows)                {                    sb.Append("{\"id\":\"" + row[idCol] + "\",\"text\":\"" + row[txtCol] + "\",\"state\":\"open\"");                    if (tabel.Select(string.Format("{0}='{1}'", rela, row[idCol])).Length > 0)                    {                        sb.Append(",\"children\":");                        GetTreeJsonByTable(tabel, idCol, txtCol, rela, row[idCol]);                        result.Append(sb.ToString());                        sb.Clear();                    }                    result.Append(sb.ToString());                    sb.Clear();                    sb.Append("},");                }                sb = sb.Remove(sb.Length - 1, 1);            }            sb.Append("]");            result.Append(sb.ToString());            sb.Clear();        }    }

调用方法很简单,运行这个void 类型的函数,然后取result 的值就行了,

GetTreeJsonByTable(datatable, "id", "title", "pid", "0");string content = result.ToString();

datatable生成easyui的json格式汇总( 转)的更多相关文章

  1. 用友U8存货分类通过DataTable生成EasyUI Tree JSON

    <%@ WebHandler Language="C#" Class="InventoryClass" %> using System; using ...

  2. ExtJs动态生成treepanel的Json格式

    在节点中加上"checked"属性,会自动生成checkbox. 获取选中节点 var nodeArray = ""; var nodesObj = mytre ...

  3. Asp.net 将DataTable 或者DataSet 转换为Json 格式

    Web 开发中,将从数据库中取到的数据直接转换为 Json 格式的数据,在前台通过Ajax 无刷新显示在界面上,下面提供将DataTable 或者DataSet 转换为Json 的方法 /// < ...

  4. easyui datagrid json 格式

    {                                                          "total":239,                    ...

  5. dataTable/dataSet转换成Json格式

    using System.Text;using System.Collections.Generic; 1)dataTable转Json(表格有名称:dt.TableName) public stat ...

  6. EasyUI_tree根据数据库数据生成树形结构JSON格式

    @Entitypublic class PubComp { @Id private String aguid; // 菜单ID private String pguid; // 父菜单 private ...

  7. LINQ查询返回DataTable类型[轉]與将DataTable序列化为Json格式【轉】

    (原文地址:http://xuzhihong1987.blog.163.com/blog/static/26731587201101853740294/) LINQ查询返回DataTable类型 在使 ...

  8. 将DataSet(DataTable)转换成JSON格式(生成JS文件存储)

    public static string CreateJsonParameters(DataTable dt) { /**/ /**/ /**/ /* /*********************** ...

  9. 把DataTable 转换成Json格式,适用于EasyUI 绑定DataGrid

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

随机推荐

  1. java常用类要点总结

  2. 组件的 state 和 setState

    state 我们前面提到过,一个组件的显示形态是可以由它数据状态和配置参数决定的.一个组件可以拥有自己的状态,就像一个点赞按钮,可以有“已点赞”和“未点赞”状态,并且可以在这两种状态之间进行切换.Re ...

  3. 迭代器———更锋利的C#代码小记(3)

    直接使用yield return关键字通过类似返回值的方式灵活地构造迭代器 public class EmployeeCollection :IEnumerable<Employee> { ...

  4. 【转】一个Java对象到底占多大内存?

    最近在读<深入理解Java虚拟机>,对Java对象的内存布局有了进一步的认识,于是脑子里自然而然就有一个很普通的问题,就是一个Java对象到底占用多大内存? 在网上搜到了一篇博客讲的非常好 ...

  5. CF778B(round 402 div.2 E) Bitwise Formula

    题意: Bob recently read about bitwise operations used in computers: AND, OR and XOR. He have studied t ...

  6. JD IPO address by liuqiangdong

    Ladies and gentlemen, Good evening.I'd rather use english, not mandarin.Because during the road show ...

  7. OCP 11g 第四章练习

    练习 4-1 配置Oracle Net 在本练习中, 将使用图形化工具和命令行工具来建立一个完整的Oracle Net 环境. 由此, 读者可看出在Windows 和 Linux 系统中的区别. 1. ...

  8. How `new’ operator works ?

    这是2013年写的一篇旧文,放在gegahost.net上面 http://raison.gegahost.net/?p=15 February 15, 2013 How `new’ operator ...

  9. 微信小程序开发系列四:微信小程序之控制器的初始化逻辑

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 这个教程的前两篇文章,介绍了如何 ...

  10. 加快create-react-app的方法

    npm config get registry 查看npm源,默认源是 https://registry.npmjs.org/ npm config set registry https://regi ...