/// <summary>
/// 將物件轉換為 JSON 字串
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="input"></param>
/// <returns></returns>
public static string ScriptSerialize<T>(T input)
{
string _jsonString = string.Empty;
if (input != null)
{
JavaScriptSerializer _serializerHelper = new JavaScriptSerializer();
_serializerHelper.MaxJsonLength = int.MaxValue;
_jsonString = _serializerHelper.Serialize(input);
}
return _jsonString;
}
/// <summary>
/// 將指定的 JSON 字串轉換為 T 型別的物件
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="input"></param>
/// <returns></returns>
public static T ScriptDeserialize<T>(string input)
{
T rtn = default(T);
if (!string.IsNullOrEmpty(input))
{
JavaScriptSerializer _serializerHelper = new JavaScriptSerializer();
rtn = _serializerHelper.Deserialize<T>(input);
}
return rtn;
}
#region 利用JavaScriptSerializer將物件序列化成JSON
/// <summary>
/// 利用JavaScriptSerializer將物件序列化成JSON字串
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="entityList">物件集合</param>
/// <returns>json</returns>
public static string Serialize<T>(IEnumerable<T> entityList) where T : class
{
string _jsonString = string.Empty;
if (entityList != null)
{
JavaScriptSerializer _serializerHelper = new JavaScriptSerializer();
_serializerHelper.MaxJsonLength = int.MaxValue;
_jsonString = _serializerHelper.Serialize(entityList);
}
return _jsonString;
}
#endregion
#region 利用JavaScriptSerializer將json字串反序列化
/// <summary>
///利用JavaScriptSerializer將json字串反序列化
/// </summary>
/// <typeparam name="T">泛型</typeparam>
/// <param name="jsonString"></param>
/// <returns>IEnumerable</returns>
public static IEnumerable<T> Deserialize<T>(string jsonString) where T : class
{
IEnumerable<T> _list = null;
if (!string.IsNullOrEmpty(jsonString))
{
JavaScriptSerializer _serializerHelper = new JavaScriptSerializer();
_list = _serializerHelper.Deserialize<IEnumerable<T>>(jsonString);
}
return _list;
}
#endregion
C# Json 序列化與反序列化一
Josn序列化與反序列化demo