C#的Json序列化和反序列化

网上找了好多不知道是太老了还是写的过于简练,以至于我在应用时总是无法引用System.Runtime.Serialization.Json

最终还是Google好用,从 https://www.nuget.org/packages/System.Runtime.Serialization.Json/ 找到了办法

在visual studio的Tools-->Nuget-->Console

输入 Install-Package System.Runtime.Serialization.Json

using System.Runtime.Serialization.Json;

    public class JSONHelper
    {
        public static string ConvertToJson<T>(T obj)
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
            MemoryStream ms = new MemoryStream();
            serializer.WriteObject(ms, obj);
            string retVal = Encoding.UTF8.GetString(ms.ToArray());
            ms.Dispose();
            return retVal;
        }

        public static T Deserialize<T>(string json)
        {
            T obj = Activator.CreateInstance<T>();
            MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json));
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
            obj = (T)serializer.ReadObject(ms);
            ms.Close();
            ms.Dispose();
            return obj;
        }
    }

 

posted @ 2017-05-23 17:02  Big_Lazy_Cat  阅读(184)  评论(0编辑  收藏  举报