C#中将dataTable转换为json格式的函数

weishumin 2011-08-10 05:26:25
请高手指教C#是否有现成的将dataTable转换为json格式的函数,请知道者尽快答复,很急谢谢!
...全文
1314 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
peterhongyang 2011-12-31
  • 打赏
  • 举报
回复
/// <summary>
/// 将DataTable转换为Json格式
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public string CreateJsonParameters(DataTable dt)
{
StringBuilder JsonString = new StringBuilder();
if (dt != null && dt.Rows.Count > 0)
{
JsonString.Append("{ ");
JsonString.Append("\"Head\":[ ");

for (int i = 0; i < dt.Rows.Count; i++)
{
JsonString.Append("{ ");
for (int j = 0; j < dt.Columns.Count; j++)
{
if (j < dt.Columns.Count - 1)
{
JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() +
"\":" + "\"" +
dt.Rows[i][j].ToString() + "\",");
}
else if (j == dt.Columns.Count - 1)
{
JsonString.Append("\"" +
dt.Columns[j].ColumnName.ToString() + "\":" +
"\"" + dt.Rows[i][j].ToString() + "\"");
}
}
if (i == dt.Rows.Count - 1)
{
JsonString.Append("} ");
}
else
{
JsonString.Append("}, ");
}
}

JsonString.Append("]}");
return JsonString.ToString();
}
else
{
return null;
}
}

这个还行吧!试一试!
sw245711601 2011-09-23
  • 打赏
  • 举报
回复
lihuinihao6315 2011-08-10
  • 打赏
  • 举报
回复
GetJson 将传入 类对象转化成字符串
ParseFromJson 将 josn字符串转化 成 对象
lihuinihao6315 2011-08-10
  • 打赏
  • 举报
回复
public class JsonHelper
{
/// <summary>
/// 生成Json格式
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string GetJson<T>(T obj)
{
DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
using (MemoryStream stream = new MemoryStream())
{
json.WriteObject(stream, obj);
string szJson = Encoding.UTF8.GetString(stream.ToArray());
return szJson;
}
}
/// <summary>
/// 获取Json的Model
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="szJson"></param>
/// <returns></returns>
public static T ParseFromJson<T>(string szJson)
{
T obj = Activator.CreateInstance<T>();
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
return (T)serializer.ReadObject(ms);
}
}
刘大山 2011-08-10
  • 打赏
  • 举报
回复
        /// <summary>
/// 将datatable转换为json
/// </summary>
/// <param name="dtb">Dt</param>
/// <returns>JSON字符串</returns>
private string Dtb2Json(DataTable dtb)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
System.Collections.ArrayList dic = new System.Collections.ArrayList();
foreach (DataRow dr in dtb.Rows)
{
System.Collections.Generic.Dictionary<string, object> drow = new System.Collections.Generic.Dictionary<string, object>();
foreach (DataColumn dc in dtb.Columns)
{
drow.Add(dc.ColumnName, dr[dc.ColumnName]);
}
dic.Add(drow);

}
//序列化
return jss.Serialize(dic);
}



楼主给分吧。
超维电脑科技 2011-08-10
  • 打赏
  • 举报
回复
大牛已解答
  • 打赏
  • 举报
回复
如果你经常做稍微复杂、层级高一些的开发,你不会使用DataTable的。那么这时候去写序列化json的代码,不是什么半小时,而是3秒钟就足够了。
  • 打赏
  • 举报
回复
[Quote=引用楼主 weishumin 的回复:]
请高手指教C#是否有现成的将dataTable转换为json格式的函数,请知道者尽快答复,很急谢谢!
[/Quote]

首先要使用精确、直截了当地代表业务实体的对象,例如User[]或者List<User>这类强类型的集合,然后使用json序列化/反序列化技术。
xboxeer 2011-08-10
  • 打赏
  • 举报
回复
这个很好写的把 花个半小时左右就写得出来
weishumin 2011-08-10
  • 打赏
  • 举报
回复
有没有现成的函数啊?
猫咪咪抓 2011-08-10
  • 打赏
  • 举报
回复
这个自己就可以实现了
只要知道json的格式 然后循环datatable
key值对应json的key value对应value
就行了

111,096

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧