using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System.Text.RegularExpressions;
namespace Tlw.zjxypj.Common
{
public class DataTableConvertJson
{
#region ------DataTable转换成Json格式(方法转)------
/// <summary>
/// dataTable转换成Json格式
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static string DataTableToJson(DataTable dt)
{
StringBuilder jsonBuilder = new StringBuilder();
jsonBuilder.Append("{\"");
jsonBuilder.Append(dt.TableName);
jsonBuilder.Append("\":[");
jsonBuilder.Append("[");
for (int i = 0; i < dt.Rows.Count; i++)
{
jsonBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append("\"");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("\":\"");
jsonBuilder.Append(dt.Rows[i][j].ToString());
jsonBuilder.Append("\",");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("},");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("]");
jsonBuilder.Append("}");
return jsonBuilder.ToString();
}
#endregion ------DataTable转换成Json格式------
#region ------DataTable转换成Json格式(插件转)------
/// <summary>
/// DataTable转换成Json格式(插件转)
/// </summary>
/// <param name="_dt"></param>
/// <returns></returns>
public static string GetJsonByDataTable(DataTable _dt)
{
string result = "";
result = JsonConvert.SerializeObject(_dt, new DataTableConverter());
return result;
}
#endregion ------DataTable转换成Json格式------
#region ------DataSet转换成Json格式(方法转)------
/// <summary>
/// DataSet转换成Json格式(方法转)
/// </summary>
/// <param name="ds">DataSet</param>
/// <returns></returns>
public static string DatasetToJson(DataSet ds)
{
StringBuilder json = new StringBuilder();
foreach (DataTable dt in ds.Tables)
{
json.Append("{\"");
json.Append(dt.TableName);
json.Append("\":");
json.Append(DataTableToJson(dt));
json.Append("}");
} return json.ToString();
}
#endregion ------DataSet转换成Json格式------
/// <summary>
/// Msdn
/// </summary>
/// <param name="jsonName"></param>
/// <param name="dt"></param>
/// <returns></returns>
public static string DataTableToJson(string jsonName, DataTable dt)
{
StringBuilder Json = new StringBuilder();
Json.Append("{\"" + jsonName + "\":[");
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
Json.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":\"" + dt.Rows[i][j].ToString() + "\"");
if (j < dt.Columns.Count - 1)
{
Json.Append(",");
}
}
Json.Append("}");
if (i < dt.Rows.Count - 1)
{
Json.Append(",");
}
}
}
Json.Append("]}");
return Json.ToString();
}
#region ------Jason转换成Datatable------
/// <summary>
/// 将json转换为DataTable
/// </summary>
/// <param name="strJson">得到的json</param>
/// <returns></returns>
public static DataTable JsonToDataTable(string strJson)
{
List<Dictionary<string, string>> ListRoot = JSonUtil.Deserialize<List<Dictionary<string, string>>>(strJson);
DataTable dt = new DataTable();
#region --解析Jason结果--
foreach (Dictionary<string, string> item in ListRoot)
{
DataRow dr = dt.NewRow();
foreach (KeyValuePair<string, string> it in item)
{
if (!dt.Columns.Contains(it.Key))
{
var dc = new DataColumn();
dc.ColumnName = it.Key;
dt.Columns.Add(dc);
}
dr[it.Key] = it.Value;
}
dt.Rows.Add(dr);
}
#endregion ----
return dt;
}
#endregion ------------
}
}
json
最新推荐文章于 2025-01-08 00:37:14 发布