转自 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. 146 LRU Cache 最近最少使用页面置换算法

    设计和实现一个  LRU(最近最少使用)缓存 数据结构,使它应该支持以下操作: get 和 put .get(key) - 如果密钥存在于缓存中,则获取密钥的值(总是正数),否则返回 -1.put(k ...

  2. Apache Kylin的架构特性

    不多说,直接上干货! http://kylin.apache.org/cn/ 可扩展的超快OLAP引擎,提供标准SQL查询接口 支持单机或集群部署,为减少在Hadoop上百亿规模数据查询延迟而设计: ...

  3. AJPFX谈Java 性能优化之基本类型 vs 引用类型

    ★名词定义 先明确一下什么是“基本类型”,什么是“引用类型”. 简单地说,所谓基本类型就是 Java 语言中如下的8种内置类型: booleancharbyteshortintlongfloatdou ...

  4. 1   开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。   本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括:    正确的使用数据库MetaData方法    只获取需要的数据    选用最佳性能的功能    管理连

    1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你. 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的 ...

  5. How To Build Kubernetes Platform (构建Kubernetes平台方案参考)

    Architecture Architecture Diagram Non-Prod Environment Prod Environment Cluster Networking Container ...

  6. 15分钟学会使用Git

    http://blog.csdn.net/u013510614/article/details/50588446 主体思想 Git作为一个复杂的版本控制系统,命令之多,相信很多小白已经望而却步,有的尝 ...

  7. 如何修改站点url

    1.config目录下的config_global.php 文件,修改:$_config['cookie']['cookiedomain'] = '.xxxxx.com';2.config目录下的co ...

  8. 图解在Ubuntu16.04中安装MySQL

    1.安装mysql-server sudo apt-get install mysql-server 输入y,回车.等待下载,安装 出现下图,需要设定Mysql的密码. 输入密码,回车,弹出确认对话框 ...

  9. 包含绑定变量的sql进行调优需注意一点

    拿1个sql举个例子,我只贴出了where后面部分 实际环境中有init_date 和direct_no的组合索引IDX_DATE_NO 上诉标红处,:b3=0 和:b3<>0这两种情况o ...

  10. js数字转金额,ajax调用接口,后台返回html(完整页面),打开新窗口并写入html

    一.转换成金额形式 function toMoney(num){ if(num){ if(isNaN(num)) { alert("金额中含有不能识别的字符"); return; ...