//序列化
public static string Serialize(object obj)
{
if (obj == null)
return null;
var js = new DataContractJsonSerializer(obj.GetType());
using (var ms = new MemoryStream())
{
js.WriteObject(ms, obj);
var sb = new StringBuilder();
sb.Append(Encoding.UTF8.GetString(ms.ToArray()));
return sb.ToString();
}
}
//反序列化
public static T Deserialize<T>(string obj) where T : class
{
if (string.IsNullOrEmpty(obj))
return null;
var bytes = Encoding.UTF8.GetBytes(obj);
using (var jsonReader = JsonReaderWriterFactory.CreateJsonReader(bytes, XmlDictionaryReaderQuotas.Max))
{
var settings = new DataContractJsonSerializerSettings();
settings.UseSimpleDictionaryFormat = true;
var js = new DataContractJsonSerializer(typeof(T), settings);
return js.ReadObject(jsonReader) as T;
}
}