转自 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. php输出中文字符

    中文字符不可以使用imagettftext()函数在图片中直接输出,如果要输出中文字符,需要先使用iconv()函数对中文字符进行编码,语法格式如下:string iconv ( string $in ...

  2. Super Mario 树状数组离线 || 线段树

    Super Mario Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  3. Suricata的命令行解释

    见官网 https://suricata.readthedocs.io/en/latest/command-line-options.html root@SELKS:~# suricata Suric ...

  4. hihocoder1067 最近公共祖先·二

    思路: 使用tarjan算法,这是一种离线算法. 实现: #include <bits/stdc++.h> using namespace std; typedef pair<int ...

  5. iOS 音频视频制作

    --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制, ...

  6. iOS开发之cell位置contentOffset的用法

    @property(nonatomic)         CGPoint                      contentOffset;                  // default ...

  7. Android-Emulator使用

    1.查看当前android支持的avd版本 2.创建Emulator avd: android create avd -n magicyu -t 2 -n后面接需要创建avd的名字,-t后面接需要创建 ...

  8. 原创 齐天大圣老司机亲传rescue恢复磁盘分区

    老葵花哥哥课堂开课了本文档秉承爱看不看的原则 一不要钱 二服务大众的高尚情操咱们今天讲一讲rescue恢复磁盘分区 首先咱们搭建环境搞起来 (parted) mkpart #创建分区 Partitio ...

  9. Eclipse 下载 开源项目 maven依赖丢失和 Deployment Assembly 丢失

    周末下载了最新的jeecg的源码来瞅瞅,但是下载后发现,pom文件中定义的依赖都丢失了. 如下图 上网搜索了一下啊,发现需要先给这个项目这个项目 disable maven nature 然后再添加上 ...

  10. excel数据比对,查找差异

    1.选中需比对的数据 2.开始->条件格式->突出显示单元格规则->重复值 3.选择唯一值,点击确定 4.结果展示 5.颜色标识的即:不同值