serialize datatable to json

public string CreateJsonParameters(DataTable dt)
{
/* /****************************************************************************
* Without goingin to the depth of the functioning of this Method, i will try to give an overview
* As soon as this method gets a DataTable it starts to convert it into JSON String,
* it takes each row and in each row it grabs the cell name and its data.
* This kind of JSON is very usefull when developer have to have Column name of the .
* Values Can be Access on clien in this way. OBJ.HEAD[0].<ColumnName>
* NOTE: One negative point. by this method user will not be able to call any cell by its index.
* ************************************************************************
*/
StringBuilder JsonString
= new StringBuilder();
//Exception Handling
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() + "\"");
}
}
/*end Of String*/
if (i == dt.Rows.Count - 1)
{
JsonString.Append(
"} ");
}
else
{
JsonString.Append(
"}, ");
}
}
JsonString.Append(
"]}");
return JsonString.ToString();
}
else
{
return null;
}
}
原文地址:https://www.cnblogs.com/cnbwang/p/2096783.html