相关dll
http://download.csdn.net/detail/u012744024/7072389
代码
public static class JsonTools
{
public static byte[] SerializeToBuffer(object info)
{
if (info == null)
{
return null;
}
try
{
string str = JsonConvert.SerializeObject(info);
if (str == null)
{
return null;
}
return Encoding.UTF8.GetBytes(str);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
}
public static string SerializeToString(object info)
{
if (info == null)
{
return null;
}
try
{
return JsonConvert.SerializeObject(info);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
}
public static Dictionary<string, object> Deserialize(string strJsonData)
{
if (string.IsNullOrEmpty(strJsonData))
{
return null;
}
try
{
return JsonConvert.DeserializeObject<Dictionary<string, object>>(strJsonData);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
}
public static Dictionary<string, object> Deserialize(byte[] bufferJsonData)
{
if (bufferJsonData == null)
{
return null;
}
return Deserialize(Encoding.UTF8.GetString(bufferJsonData));
}
public static Dictionary<string, object> Deserialize(Object obj)
{
return Deserialize(SerializeToString(obj));
}
public static T DeserializeToTFromObject<T>(object obj) where T : class
{
return DeserializeToTFromString<T>(SerializeToString(obj));
}
public static T DeserializeToTFromBuffer<T>(byte[] buffer) where T : class
{
if (buffer == null)
{
return null;
}
return DeserializeToTFromString<T>(Encoding.UTF8.GetString(buffer, 0, buffer.Length));
}
/// <summary>
/// 反序列化:将string反序列化成T
/// </summary>
/// <typeparam name="T">类,数据结构</typeparam>
/// <param name="strJsonData">被反序列化的字符串string</param>
/// <returns></returns>
public static T DeserializeToTFromString<T>(string strJsonData) where T : class
{
if (string.IsNullOrEmpty(strJsonData))
{
return null;
}
try
{
return JsonConvert.DeserializeObject<T>(strJsonData);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
}
}