JsonHelper(C#)

来源:互联网 发布:琅琊榜捏脸数据 编辑:程序博客网 时间:2024/06/12 00:55
/// <summary>    /// Json帮助类    /// </summary>    public static class JsonHelper    {        /// <summary>        /// 将对象序列化为JSON格式        /// </summary>        /// <param name="o">对象</param>        /// <returns>json字符串</returns>        public static string ToJson(this object o)        {            string json = JsonConvert.SerializeObject(o);            return json;        }        /// <summary>        /// 解析JSON字符串生成对象实体        /// </summary>        /// <typeparam name="T">对象类型</typeparam>        /// <param name="json">json字符串(eg.{"ID":"112","Name":"石子儿"})</param>        /// <returns>对象实体</returns>        public static T JsonToObject<T>(this 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":"112","Name":"石子儿"}])</param>        /// <returns>对象实体集合</returns>        public static List<T> JsonToList<T>(this 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;        }        /// <summary>        /// 反序列化JSON到给定的匿名对象.        /// </summary>        /// <typeparam name="T">匿名对象类型</typeparam>        /// <param name="json">json字符串</param>        /// <param name="anonymousTypeObject">匿名对象</param>        /// <returns>匿名对象</returns>        public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject)        {            T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);            return t;        }        /// <summary>        /// 获取JSON格式的值,只支持.NET3.5+        /// </summary>        /// <param name="input">JSON文本</param>        /// <param name="getkey">已知的KEY</param>        /// <returns>获取已知KEY的值</returns>        public static string getJsonval(string input, string key)        {            if (string.IsNullOrEmpty(input) || string.IsNullOrEmpty(key)) return string.Empty;            JsonSerializer serializer = new JsonSerializer();            StringReader sr = new StringReader(input);            Dictionary<string, object> json = serializer.Deserialize(new JsonTextReader(sr), typeof(Dictionary<string, object>)) as Dictionary<string, object>;            object value;            json.TryGetValue(key, out value);            return value as string;        }    }

0 0
原创粉丝点击