c#的json格式化为实例对象函数

c#的json格式化为实例对象函数

最近因为工作需要的原因,查找了许多如何把json格式的字符串转化为实例对象,并总结了一下常用的函数。

//将JSON格式转化为实例对象
    public static class JSON
    {
	    //创建一个将对象序列化成json格式的对象,其中typeof(T),是使用T类型的对象创建,也是需要序列化的对象
        public static T parse<T>(string jsonString)
        {  
            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
            {                
                return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms);
            }
        }

        public static string stringify(object jsonObject)
        {
            using (var ms = new MemoryStream())  
            {
                new DataContractJsonSerializer(jsonObject.GetType()).WriteObject(ms, jsonObject);
                return Encoding.UTF8.GetString(ms.ToArray());
            }
        }
     
        /// <summary>
        /// 解析JSON字符串生成对象实体
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="json">json字符串</param>
        /// <returns>对象实体</returns>
        public static T DeserializeJsonToObject<T>(string json) where T : class
        {
            JsonSerializer serializer = new JsonSerializer();
            StringReader sr = new StringReader(json);
            object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
            T t = o as T;
            return t;
        }

        /// <summary>
        /// 解析JSON数组生成对象实体集合
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="json">json数组字符串(eg.[{"ID":"001","Name":"张三"}])</param>
        /// <returns>对象实体集合</returns>
        public static List<T> DeserializeJsonToList<T>(string json) where T : class
        {
            JsonSerializer serializer = new JsonSerializer();
            StringReader sr = new StringReader(json);
            object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>));
            List<T> list = o as List<T>;
            return list;
        }

猜你喜欢

转载自blog.csdn.net/c1149884598/article/details/86494312