DataTableToJson:
Using System;
Using System. Collections. Generic;
Using System. Linq;
Using System. Text;
Using System. Runtime. Serialization. Json;
Using System. Runtime. Serialization;
Using System. IO;
Using System. Web. Script. Serialization;
Using MicroBlog. Common. APIHelper;
Using System. Web;
Namespace MicroBlog. Common. APIHelper
{
Public class Resolve
{
/// <Summary>
/// Convert JSON text to object, generic Method
/// </Summary>
/// <Typeparam name = "T"> type </typeparam>
/// <Param name = "jsonText"> JSON text </param>
/// <Returns> specified object type </returns>
Public static T JSONToObject <T> (string jsonText, HttpContext context)
{
JavaScriptSerializer jss = new JavaScriptSerializer ();
Try
{
Return jss. Deserialize <T> (jsonText );
}
Catch (Exception ex)
{
Return default (T );
}
}
/// <Summary>
/// Convert JSON text into data rows
/// </Summary>
/// <Param name = "jsonText"> JSON text </param>
/// <Returns> data row dictionary </returns>
Public static Dictionary <string, object> DataRowFromJSON (string jsonText, HttpContext context)
{
Return JSONToObject <Dictionary <string, object> (jsonText, context );
}
}
}
Call: Dictionary <string, object> dt = Resolve. DataRowFromJSON (requestbuffer, context );
DatasetToJson:
Public class DataSetConverter: JsonConverter
{
Public override bool CanConvert (Type objectType)
{
Return typeof (DataSet). IsAssignableFrom (objectType );
}
Public override void WriteJson (JsonWriter writer, object value)
{
DataSet ds = (DataSet) value;
Writer. WriteStartObject ();
Foreach (DataTable dt in ds. Tables)
{
Writer. WritePropertyName (dt. TableName );
Writer. WriteStartArray ();
Foreach (DataRow dr in dt. Rows)
{
Writer. WriteStartObject ();
Foreach (DataColumn dc in dt. Columns)
{
Writer. WritePropertyName (dc. ColumnName );
Writer. WriteValue (dr [dc]. ToString ());
}
Writer. WriteEndObject ();
}
Writer. WriteEndArray ();
}
Writer. WriteEndObject ();
}
}
Call: JavaScriptConvert. SerializeObject (GetTestDataSet (), new DataSetConverter ());
DataTableToJson2:
Public class DataTableConverter: JsonConverter
{
Public override void WriteJson (JsonWriter writer, object value)
{
DataTable dt = (DataTable) value;
Writer. WriteStartArray ();
Foreach (DataRow dr in dt. Rows)
{
Writer. WriteStartObject ();
Foreach (DataColumn dc in dt. Columns)
{
Writer. WritePropertyName (dc. ColumnName );
Writer. WriteValue (dr [dc]. ToString ());
}
Writer. WriteEndObject ();
}
Writer. WriteEndArray ();
}
Public override bool CanConvert (Type objectType)
{
Return typeof (DataTable). IsAssignableFrom (objectType );
}
}
Call: JavaScriptConvert. SerializeObject (GetTestDataTable (), new DataTableConverter ());
From _ ya