class ToJosn
{
#region dataTable转换成Json格式
/// <summary>
/// dataTable转换成Json格式
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static string ToJson(ArrayList aliJson)
{
StringBuilder sbuBuilder = new StringBuilder();
sbuBuilder.Append("{\"Value\":[");
for (int i = ; i < aliJson.Count; i++)
{
sbuBuilder.Append("\"");
sbuBuilder.Append(aliJson[i].ToString().Replace("\"", "\\\""));
sbuBuilder.Append("\",");
}
if (aliJson.Count > )
{
sbuBuilder.Remove(sbuBuilder.Length - , );
}
sbuBuilder.Append("]}");
string strJson = sbuBuilder.ToString();
strJson = strJson.Replace("\n", "<br />");
strJson = strJson.Replace("\r", "<br />");
return strJson;//sbuBuilder.ToString();
}
public static string ToJson(DataTable dtaJson)
{
StringBuilder sbuBuilder = new StringBuilder();
sbuBuilder.Append("{\"Rows\":[");
for (int i = ; i < dtaJson.Rows.Count; i++)
{
sbuBuilder.Append("[");
for (int j = ; j < dtaJson.Columns.Count; j++)
{
sbuBuilder.Append("\"");
sbuBuilder.Append(dtaJson.Rows[i][j].ToString().Replace("\"", "\\\"").Replace("\r\n", "<br>"));
sbuBuilder.Append("\",");
}
sbuBuilder.Remove(sbuBuilder.Length - , );
sbuBuilder.Append("],");
}
if (dtaJson.Rows.Count > )
{
sbuBuilder.Remove(sbuBuilder.Length - , );
}
sbuBuilder.Append("]}"); string strJson = sbuBuilder.ToString();
strJson = strJson.Replace("\n", "<br />");
strJson = strJson.Replace("\r", "<br />"); return strJson;//sbuBuilder.ToString();
} #endregion dataTable转换成Json格式 #region DataSet转换成Json格式
/// <summary>
/// DataSet转换成Json格式
/// </summary>
/// <param name="ds">DataSet</param>
/// <returns></returns>
public static string ToJson(DataSet dseJson)
{
StringBuilder sbuBuilder = new StringBuilder();
sbuBuilder.Append("{\"Tables\":[");
foreach (DataTable dtJson in dseJson.Tables)
{
sbuBuilder.Append(ToJson(dtJson) + ",");
}
sbuBuilder.Remove(sbuBuilder.Length - , );
sbuBuilder.Append("]}"); string strJson = sbuBuilder.ToString();
strJson = strJson.Replace("\n", "<br />");
strJson = strJson.Replace("\r", "<br />");
return strJson;//sbuBuilder.ToString();
}
#endregion /// <summary>
/// 带表头的
/// </summary>
/// <param name="dtaJson"></param>
/// <param name="b"></param>
/// <returns></returns>
public static string ToJson(DataTable dtaJson, bool b)
{
StringBuilder sbuBuilder = new StringBuilder();
sbuBuilder.Append("{\"Rows\":[");
for (int i = ; i < dtaJson.Rows.Count; i++)
{
sbuBuilder.Append("{");
for (int j = ; j < dtaJson.Columns.Count; j++)
{ sbuBuilder.Append("\"" + dtaJson.Columns[j].ColumnName + "\":");
sbuBuilder.Append("\"");
sbuBuilder.Append(dtaJson.Rows[i][j].ToString().Replace("\"", "\\\"").Replace("\r\n", "<br>"));
sbuBuilder.Append("\",");
}
sbuBuilder.Remove(sbuBuilder.Length - , );
sbuBuilder.Append("},");
}
if (dtaJson.Rows.Count > )
{
sbuBuilder.Remove(sbuBuilder.Length - , );
}
sbuBuilder.Append("]}"); string strJson = sbuBuilder.ToString();
strJson = strJson.Replace("\n", "<br />");
strJson = strJson.Replace("\r", "<br />"); return strJson;//sbuBuilder.ToString();
} /// <summary>
/// 带表头的
/// </summary>
/// <param name="dseJson"></param>
/// <returns></returns>
public static string ToJson(DataSet dseJson, bool b)
{
StringBuilder sbuBuilder = new StringBuilder();
sbuBuilder.Append("{\"Tables\":[");
foreach (DataTable dtJson in dseJson.Tables)
{
sbuBuilder.Append(ToJson(dtJson, true) + ",");
}
sbuBuilder.Remove(sbuBuilder.Length - , );
sbuBuilder.Append("]}"); string strJson = sbuBuilder.ToString();
strJson = strJson.Replace("\n", "<br />");
strJson = strJson.Replace("\r", "<br />");
return strJson;//sbuBuilder.ToString();
} /// <summary>
/// 将JSON解析成DataSet只限标准的JSON数据
/// 例如:Json={t1:[{name:'数据name',type:'数据type'}]}
/// 或 Json={t1:[{name:'数据name',type:'数据type'}],t2:[{id:'数据id',gx:'数据gx',val:'数据val'}]}
/// </summary>
/// <param name="Json">Json字符串</param>
/// <returns>DataSet</returns>
public static DataSet JsonToDataSet(string Json)
{
try
{
DataSet ds = new DataSet();
JavaScriptSerializer JSS = new JavaScriptSerializer(); object obj = JSS.DeserializeObject(Json);
Dictionary<string, object> datajson = (Dictionary<string, object>)obj; foreach (var item in datajson)
{
DataTable dt = new DataTable(item.Key);
object[] rows = (object[])item.Value;
foreach (var row in rows)
{
Dictionary<string, object> val = (Dictionary<string, object>)row;
DataRow dr = dt.NewRow();
foreach (KeyValuePair<string, object> sss in val)
{
if (!dt.Columns.Contains(sss.Key))
{
dt.Columns.Add(sss.Key.ToString());
dr[sss.Key] = sss.Value;
}
else
dr[sss.Key] = sss.Value;
}
dt.Rows.Add(dr);
}
ds.Tables.Add(dt);
}
return ds;
}
catch
{
return null;
}
} /// <summary>
/// 临时方法 把字典表生成js文件 职位
/// </summary>
public static string funTemp(string total)
{
DataSet ds = hrSystem.DAL.commd.dalcomd.P_Sys_getTableCoum("zh_Sys_Position", "dictNO,parentNO, Explainss ", "intType", total);
DataTable dt = ds.Tables[];
DataTable CurrDt = dt;
StringBuilder sbuBuilder = new StringBuilder();
sbuBuilder.Append("{\"Item\":[");
for (int i = ; i < dt.Rows.Count; i++)
{
if (dt.Rows[i]["parentNO"] == DBNull.Value)
{ DataRow[] drTemp1 = dt.Select(" parentNO='" + dt.Rows[i]["dictNO"].ToString() + "'"); sbuBuilder.Append("[");
for (int j = ; j < dt.Columns.Count; j++)
{
sbuBuilder.Append("\"");
sbuBuilder.Append(dt.Rows[i][j].ToString().Replace("\"", "\\\"").Replace("\r\n", "<br>"));
sbuBuilder.Append("\",");
}
if (dt.Rows[i]["parentNO"] == DBNull.Value)
{ DataTable dtTemp2 = new DataTable();
for (int j = ; j < dt.Columns.Count; j++)
{
dtTemp2.Columns.Add("");
}
foreach (DataRow drTemp in dt.Select(" parentNO='" + dt.Rows[i]["dictNO"].ToString() + "'"))
{
string[] dtAppend = new string[drTemp.ItemArray.Length];
for (int k = ; k < drTemp.ItemArray.Length; k++)
{
dtAppend[k] = drTemp.ItemArray[k].ToString();
}
dtTemp2.Rows.Add(dtAppend);
} sbuBuilder.Append(ToJson(dtTemp2) + "}");
dtTemp2.Clear();
} sbuBuilder.Remove(sbuBuilder.Length - , );
sbuBuilder.Append("],,"); if (dt.Rows.Count > )
{
sbuBuilder.Remove(sbuBuilder.Length - , );
} } }
sbuBuilder.Append("]},");
sbuBuilder.Remove(sbuBuilder.Length - , );
return sbuBuilder.ToString();
} /// <summary>
/// 临时方法 把字典表生成js文件 城市
/// </summary>
public static string funTemp1()
{
DataSet ds = hrSystem.DAL.commd.dalcomd.P_Sys_getTableCoum("zh_Sys_crty", "intCrtyCode,intParentCrtyCode, strName,intType,strSpell ", "", "");
DataTable dt = ds.Tables[];
DataTable CurrDt = dt;
StringBuilder sbuBuilder = new StringBuilder();
sbuBuilder.Append("{\"Item\":[");
for (int i = ; i < dt.Rows.Count; i++)
{
if (dt.Rows[i]["intParentCrtyCode"].ToString() == "-1")
{ DataRow[] drTemp1 = dt.Select(" intParentCrtyCode='" + dt.Rows[i]["intCrtyCode"].ToString() + "'"); sbuBuilder.Append("[");
for (int j = ; j < dt.Columns.Count; j++)
{
sbuBuilder.Append("\"");
sbuBuilder.Append(dt.Rows[i][j].ToString().Replace("\"", "\\\"").Replace("\r\n", "<br>"));
sbuBuilder.Append("\",");
}
if (dt.Rows[i]["intParentCrtyCode"].ToString() == "-1")
{ DataTable dtTemp2 = new DataTable();
for (int j = ; j < dt.Columns.Count; j++)
{
dtTemp2.Columns.Add("");
}
foreach (DataRow drTemp in dt.Select(" intParentCrtyCode='" + dt.Rows[i]["intCrtyCode"].ToString() + "'"))
{
string[] dtAppend = new string[drTemp.ItemArray.Length];
for (int k = ; k < drTemp.ItemArray.Length; k++)
{
dtAppend[k] = drTemp.ItemArray[k].ToString();
}
dtTemp2.Rows.Add(dtAppend);
} sbuBuilder.Append(ToJson(dtTemp2) + "}");
dtTemp2.Clear();
} sbuBuilder.Remove(sbuBuilder.Length - , );
sbuBuilder.Append("],,"); if (dt.Rows.Count > )
{
sbuBuilder.Remove(sbuBuilder.Length - , );
} } }
sbuBuilder.Append("]},");
sbuBuilder.Remove(sbuBuilder.Length - , );
return sbuBuilder.ToString();
}
}

------------------------------------------------------第二种方式 自带的

 string json = JsonConvert.SerializeObject(ds.Tables[]);
List<MuzuAPI.Model.shopgoodsstock> list = JsonConvert.DeserializeObject<List<MuzuAPI.Model.shopgoodsstock>>(json);

------------------------------------------------------

/// <summary>
/// DataTable转实体集合
/// </summary>
/// <typeparam name="T"></typeparam>
public static class FillModel<T> where T : new()
{
/// <summary>
/// 填充对象列表:用DataTable填充实体类
/// </summary>
public static List<T> TableToModel(DataTable dt)
{
if (dt == null || dt.Rows.Count == )
{
return null;
}
List<T> modelList = new List<T>();
foreach (DataRow dr in dt.Rows)
{
T model = new T();
for (int i = ; i < dr.Table.Columns.Count; i++)
{
PropertyInfo propertyInfo = model.GetType().GetProperty(dr.Table.Columns[i].ColumnName);
if (propertyInfo != null && dr[i] != DBNull.Value)
propertyInfo.SetValue(model, dr[i], null);
} modelList.Add(model);
}
return modelList;
}

dataset datatable 转json的更多相关文章

  1. DataSet、DataTable、Json、List 等各种数据的相互转化

      1.根据Dataset生成json格式的字符串,不管Dataset里面有多少个表都可以一一生成对应的json字符串,并一次性返回 private string dsToJson(DataSet d ...

  2. dataTable/dataSet转换成Json格式

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

  3. [Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)

    点击下载 ConvertJson.rar 本类实现了 C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json|等功能大家先预 ...

  4. DataTable 和Json 字符串互转

    #region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> ...

  5. [C#]Datatable和json互相转换操作

    #region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> ...

  6. C#中把Datatable转换为Json的5个代码实例

    一. /// <summary> /// Datatable转换为Json /// </summary> /// <param name="table" ...

  7. 把DataSet转换成JSON

    /// <summary> /// dataTable转换成Json格式 /// </summary> /// <param name="dt"> ...

  8. XML和JSON 序列化以及DataTable转JSON

    using System.IO; using System.Text; using System.Xml.Serialization; using System.Xml; using System.R ...

  9. c#实现list,dataset,DataTable转换成josn等各种转换方法总和

    using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Refle ...

随机推荐

  1. 牛客多校第八场 G Gemstones 栈/贪心

    题意: 对于一个序列,把可以把连着三个相同的字母拿走,问最多拿走多少组. 题解: 直接模拟栈,三个栈顶元素相同则答案+1,并弹出栈 #include<bits/stdc++.h> usin ...

  2. Python 爬虫-抓取中小企业股份转让系统公司公告的链接并下载

    系统运行系统:MAC 用到的python库:selenium.phantomjs等 由于中小企业股份转让系统网页使用了javasvript,无法用传统的requests.BeautifulSoup库获 ...

  3. 《转》python 9 字典,numpy

    http://www.cnblogs.com/BeginMan/p/3156960.html 一.映射类型 我理解中的映射类型是:键值对的关系,键(key)映射值(value),且它们是一对多的关系. ...

  4. sql 循环执行游标

    ---定义开始和结束时间 declare @st_dt datetime declare @en_dt datetime ---时间赋值 ' ' ---定义中间变量 declare @dt datet ...

  5. 如何使用maven打包

    使用maven打包有两种情况:不包括第三方jar包.包括第三方jar包 一般我们写程序,都会在IDEA上去调试,那么也就意味着,你需要将你所需要的jar包(第三方jar)全部给pom文件,否则是不能工 ...

  6. Android开发 如何最优的在Activity里释放资源

    前言 当前你已经入门Android开发,开始关注深入的问题,你就会碰到一个Android开发阶段经常碰到的问题,那就是内存泄漏. 其实大多数Android的内存泄漏都是因为activity里的资源释放 ...

  7. XYIXY.COM短网址在线生成,快速、稳定、永久有效,免费开放网址缩短API接口。

    在PHP中使用API 要在PHP程序中使用API,您必须通过file_get_contents或cURL发送GET请求:两者都是可靠的方法,您可以直接复制下面的代码. <?php /**** S ...

  8. RocketMQ源码分析之RocketMQ事务消息实现原下篇(事务提交或回滚)

    摘要: 事务消息提交或回滚的实现原理就是根据commitlogOffset找到消息,如果是提交动作,就恢复原消息的主题与队列,再次存入commitlog文件进而转到消息消费队列,供消费者消费,然后将原 ...

  9. 关于CTreeView中CTreeCtrl空间的使用

    昨天QQ群里有人问我怎么实现CTreeCtrl的功能,说实话,我也是一个VC 的初级学者,没有弄过CTreeView的代码,参考了MSDN后,写了一小段代码,和大家一起分享,其中包括窗口切分,都是比较 ...

  10. tomcat7 linux service

    1. 创建tomcat用户 useradd -r -m -d /usr/local/tomcat7 -s /sbin/nologin tomcat 2. 将下面脚本命名为tomcat7 放入/etc/ ...