.net中json字符串和对象之间的转化方法

json作为作为一种最常用的数据,应用很广泛,在.net中如何把一个对象转化为json字符串呢?

主要有一下几种

1按照json的定义自己转化,难度很大,但很灵活。需要自己处理各种特殊字符,各种数据类型

2使用开源的类库Newtonsoft.Json

3使用JavaScriptSerializer类 

4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory实现。


1按照json的定义自己转化,难度很大,但很灵活。需要自己处理各种特殊字符,各种数据类型

要写成通用的核心就是使用反射。

2使用开源的类库Newtonsoft.Json,很方便,.net的各个版本都有。

 /// 
        /// 对象转为json
        /// 
        /// 
        /// 
        /// 
        public static string ObjToJsonString(ObjType obj) where ObjType : class
        {
            string s = JsonConvert.SerializeObject(obj);
            return s;
        }
        /// 
        /// json转为对象
        /// 
        /// 
        /// 
        /// 
        public static ObjType JsonStringToObj(string JsonString) where ObjType : class
        {          
            ObjType s = JsonConvert.DeserializeObject(JsonString);
            return s;
        }

3JavaScriptSerializer类 ,使用.NET Framework 3.5/4.0中提供的System.Web.Script.Serialization命名空间下的JavaScriptSerializer类进行对象的序列化与反序列化。需要添加程序集System.Web.Extensions.dll。

 /// 
        /// 对象转为json
        /// 
        /// 
        /// 
        /// 
        public static string ObjToJsonString(ObjType obj) where ObjType : class
        {
            JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
            string s = jsonSerializer.Serialize(obj);
            return s;
        }  
        /// 
        /// json转为对象
        /// 
        /// 
        /// 
        /// 
        public static ObjType JsonStringToObj(string JsonString) where ObjType : class
        {
            JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
            ObjType s = jsonSerializer.Deserialize(JsonString);
            return s;
        }
4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory实现。

具体可参考


你可能感兴趣的:(json处理,.net,C#,asp.net)