Copy Code code as follows:
Using System;
Using System.Collections.Generic;
Using System.Text;
Using System.Data;
Using System.Reflection;
Using System.Collections;
Using System.Data.Common;
public class Convertjson
{
#region Private Method
<summary>
Filter special characters
</summary>
private static string String2json (string s)
{
StringBuilder sb = new StringBuilder ();
for (int i = 0; i < s.length; i++)
{
char C = s.tochararray () [i];
Switch (c)
{
Case ' \ ':
Sb. Append ("\\\"); Break
Case ' \ ':
Sb. Append ("\\\\"); Break
Case '/':
Sb. Append ("\\/"); Break
Case ' \b ':
Sb. Append ("\\b"); Break
Case ' \f ':
Sb. Append ("\\f"); Break
Case ' \ n ':
Sb. Append ("\\n"); Break
Case ' \ R ':
Sb. Append ("\ r"); Break
Case ' t ':
Sb. Append ("\\t"); Break
Default
Sb. Append (c); Break
}
}
Return SB. ToString ();
}
<summary>
Format character type, date type, Boolean type
</summary>
private static string StringFormat (String str, type type)
{
if (type = = typeof (String))
{
str = String2json (str);
str = "\" + str + "\";
}
else if (type = = typeof (DateTime))
{
str = "\" + str + "\";
}
else if (type = = typeof (bool))
{
str = str. ToLower ();
}
else if (type!= typeof (String) && string. IsNullOrEmpty (str))
{
str = "\" + str + "\";
}
return str;
}
#endregion
Convert #region list into JSON
<summary>
List into JSON
</summary>
public static string listtojson<t> (ilist<t> list)
{
Object obj = list[0];
return listtojson<t> (list, obj.) GetType (). Name);
}
<summary>
List into JSON
</summary>
public static string listtojson<t> (ilist<t> list, string jsonname)
{
StringBuilder Json = new StringBuilder ();
if (string. IsNullOrEmpty (jsonname)) Jsonname = List[0]. GetType (). Name;
Json.append ("{\" "+ Jsonname +" \ ": [");
if (list. Count > 0)
{
for (int i = 0; i < list. Count; i++)
{
T obj = activator.createinstance<t> ();
propertyinfo[] pi = obj. GetType (). GetProperties ();
Json.append ("{");
for (int j = 0; J < Pi.) Length; J + +)
{
Type type = Pi[j]. GetValue (List[i], null). GetType ();
Json.append ("\" "+ pi[j]." Name.tostring () + "\": "+ StringFormat (Pi[j]." GetValue (List[i], null). ToString (), type));
if (J < Pi. LENGTH-1)
{
Json.append (",");
}
}
Json.append ("}");
if (I < list. COUNT-1)
{
Json.append (",");
}
}
}
Json.append ("]}");
return json.tostring ();
}
#endregion
Convert #region object to JSON
<summary>
Object converted to JSON
</summary>
<param name= "Jsonobject" > Object </param>
<returns>json string </returns>
public static string Tojson (object Jsonobject)
{
String jsonstring = "{";
propertyinfo[] PropertyInfo = Jsonobject.gettype (). GetProperties ();
for (int i = 0; i < propertyinfo.length; i++)
{
Object objectvalue = Propertyinfo[i]. Getgetmethod (). Invoke (jsonobject, NULL);
String value = String. Empty;
if (Objectvalue is DateTime | | Objectvalue are GUID | | Objectvalue is TimeSpan)
{
Value = "'" + objectvalue.tostring () + "'";
}
else if (Objectvalue is string)
{
Value = "'" + Tojson (objectvalue.tostring ()) + "'";
}
else if (Objectvalue is IEnumerable)
{
Value = Tojson ((IEnumerable) objectvalue);
}
Else
{
Value = Tojson (objectvalue.tostring ());
}
Jsonstring + = "" "+ Tojson (propertyinfo[i). Name) + "\": "+ Value +", ";
}
Jsonstring.remove (Jsonstring.length-1, jsonstring.length);
return jsonstring + "}";
}
#endregion
Convert JSON #region Collection of objects
<summary>
Object Collection Transform JSON
</summary>
<param name= "Array" > Collection Object </param>
<returns>json string </returns>
public static string Tojson (IEnumerable array)
{
String jsonstring = "[";
foreach (object item in array)
{
Jsonstring + = Tojson (item) + ",";
}
Jsonstring.remove (Jsonstring.length-1, jsonstring.length);
return jsonstring + "]";
}
#endregion
Convert JSON #region Normal collection
<summary>
Normal collection Convert JSON
</summary>
<param name= "Array" > Collection Object </param>
<returns>json string </returns>
public static string toarraystring (IEnumerable array)
{
String jsonstring = "[";
foreach (object item in array)
{
jsonstring = Tojson (item. ToString ()) + ",";
}
Jsonstring.remove (Jsonstring.length-1, jsonstring.length);
return jsonstring + "]";
}
#endregion
Convert #region DataSet to JSON
<summary>
DataSet converted to JSON
</summary>
<param name= "DataSet" >dataset object </param>
<returns>json string </returns>
public static string Tojson (DataSet dataset)
{
String jsonstring = "{";
foreach (DataTable table in Dataset.tables)
{
jsonstring = "\" + table. TableName + "\": "+ tojson (table) +";
}
jsonstring = Jsonstring.trimend (', ');
return jsonstring + "}";
}
#endregion
Converting #region DataTable to JSON
<summary>
DataTable converted to JSON
</summary>
<param name= "Table" >datatable object </param>
<returns>json string </returns>
public static string Tojson (DataTable dt)
{
StringBuilder jsonstring = new StringBuilder ();
Jsonstring.append ("[");
DataRowCollection DRC = dt. Rows;
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 ("},");
}
Jsonstring.remove (jsonstring.length-1, 1);
Jsonstring.append ("]");
return jsonstring.tostring ();
}
<summary>
DataTable converted to JSON
</summary>
public static string Tojson (DataTable dt, string jsonname)
{
StringBuilder Json = new StringBuilder ();
if (string. IsNullOrEmpty (jsonname)) jsonname = dt. TableName;
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 + +)
{
Type type = dt. ROWS[I][J]. GetType ();
Json.append ("\" "+ dt.) COLUMNS[J]. Columnname.tostring () + "\": "+ StringFormat" (dt. ROWS[I][J]. ToString (), type));
if (J < dt. COLUMNS.COUNT-1)
{
Json.append (",");
}
}
Json.append ("}");
if (i < dt. ROWS.COUNT-1)
{
Json.append (",");
}
}
}
Json.append ("]}");
return json.tostring ();
}
#endregion
Convert #region DataReader to JSON
<summary>
DataReader Convert to JSON
</summary>
<param name= "DataReader" >datareader object </param>
<returns>json string </returns>
public static string Tojson (DbDataReader dataReader)
{
StringBuilder jsonstring = new StringBuilder ();
Jsonstring.append ("[");
while (Datareader.read ())
{
Jsonstring.append ("{");
for (int i = 0; i < Datareader.fieldcount; i++)
{
Type type = Datareader.getfieldtype (i);
String strkey = Datareader.getname (i);
String strvalue = Datareader[i]. ToString ();
Jsonstring.append ("\" "+ strkey +" \ ":");
strvalue = StringFormat (strvalue, type);
if (I < datareader.fieldcount-1)
{
Jsonstring.append (strvalue + ",");
}
Else
{
Jsonstring.append (strvalue);
}
}
Jsonstring.append ("},");
}
Datareader.close ();
Jsonstring.remove (jsonstring.length-1, 1);
Jsonstring.append ("]");
return jsonstring.tostring ();
}
#endregion
}