///
/// Datatable转换为Json
///
/// DataTable
/// total的值
/// json的名稱
/// json字符串
public static string DataTableToJson(DataTable dt, int rowCount, string jsonName)
{
StringBuilder jsonString = new StringBuilder();
if (string.IsNullOrEmpty(jsonName))
{
jsonName = "rows";
}
jsonString.Append("{\"total\":" + rowCount + ",\"" + jsonName + "\":[");
DataRowCollection drc = dt.Rows;
if (drc.Count > 0)
{
for (int i = 0; i < drc.Count; i++)
{
jsonString.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
string strKey = dt.Columns[j].ColumnName;
string strValue = drc[i][j].ToString();
Type type = dt.Columns[j].DataType;
jsonString.Append("\"" + strKey + "\":");
strValue = StringFormat(strValue, type);
if (j < dt.Columns.Count - 1)
{
jsonString.Append(strValue + ",");
}
else
{
jsonString.Append(strValue);
}
}
jsonString.Append("},");
}
}
else
{
jsonString.Append("{");
}
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]}");
return jsonString.ToString();
}
///
/// Datatable转换为樹狀Json
///
/// json字符串
public static string DataTableToTreeJson(DataTable dt)
{
bool flag = false;
StringBuilder jsonString = new StringBuilder();
jsonString.Append("[");
DataRowCollection drc = dt.Rows;
if (drc.Count > 0)
{
for (int i = 0; i < drc.Count; i++)
{
jsonString.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
string strKey = dt.Columns[j].ColumnName;
string strValue = drc[i][j].ToString();
Type type = dt.Columns[j].DataType;
jsonString.Append("\"" + strKey + "\":");
strValue = StringFormat(strValue, type);
if (j < dt.Columns.Count - 1)
{
jsonString.Append(strValue + ",");
}
else
{
jsonString.Append(strValue);
}
}
if (i + 1 < drc.Count)
{
if (drc[i + 1][0].ToString() == "1" && flag == true)
{
jsonString.Append("}]},");
flag = false;
}
else if (drc[i + 1][0].ToString() == "1" && flag == false)
{
jsonString.Append(",\"children\":[]},");
}
else
{
if (drc[i + 1][0].ToString() != drc[i][0].ToString())
jsonString.Append(",\"state\":\"closed\",\"children\":[");
else
jsonString.Append("},");
flag = true;
}
}
else
{
if (flag == true)
jsonString.Append("}]},");
else
jsonString.Append(",\"children\":[]},");
}
}
}
else
{
jsonString.Append("{");
}
jsonString.Remove(jsonString.Length - 1, 1);
jsonString.Append("]");
return jsonString.ToString();
}
注:Json轉換(一二三)位於同一個Static類中
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28699126/viewspace-759365/
,如需转载,请注明出处,否则将追究法律责任。