using System.IO; using System.Runtime.Serialization.Json; using System.Text; namespace HRD.WebApi.Helpers { public static class JsonConvert { public static string Serialize(T obj) { using (var stream = new MemoryStream()) { GetSerializer().WriteObject(stream, obj); return Encoding.UTF8.GetString(stream.ToArray()); } } public static T Deserialize(string json) { using (var stream = new MemoryStream()) { using (var writer = new StreamWriter(stream)) { writer.Write(json); writer.Flush(); stream.Position = 0; return (T)GetSerializer().ReadObject(stream); } } } private static DataContractJsonSerializer GetSerializer() { var settings = new DataContractJsonSerializerSettings { UseSimpleDictionaryFormat = true }; return new DataContractJsonSerializer(typeof(T), settings); } } }