C#解析json数据的方法
来源:互联网 发布:网站权限数据库设计 编辑:程序博客网 时间:2024/05/17 22:42
C#解析json数据的方法
本文介绍三种方式
- 使用JavaScriptSerializer解析数据(速度较慢,不建议使用)
- 使用JsonConvert解析数据(建议使用在,在.net3.5下可以使用)
- 使用fastJson解析数据(推荐使用,但只支持.net4及以上)
JsonConvert方式
1、引用命名空间:Newtonsoft.Json
2、解析类
[plain] [copy]
[plain] /// <summary> /// Json帮助类 /// </summary> public class JsonHelper { /// <summary> /// 将对象序列化为JSON格式 /// </summary> /// <param name="o">对象</param> /// <returns>Json字符串</returns> public static string SerializeObject(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 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":"112","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; } /// <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; } }[/code]
fastJson方式
1、引入命名空间 fastJSON
下载地址:http://download.csdn.net/detail/mrli113/9685273
2、解析类
public class JsonHelper { /// <summary> /// 将对象转换成json字符串 /// </summary> /// <param name="o"></param> /// <returns></returns> public static string SerializeObject(object o) { return JSON.Instance.ToJSON(o); } /// <summary> /// 将对象转换成模型 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="json"></param> /// <returns></returns> public static T JSONStringToT<T>(string json) { T t = (T)JSON.Instance.ToObject(json); return t; } /// <summary> /// 将json字符串换成List<T> /// </summary> /// <typeparam name="T"></typeparam> /// <param name="JsonStr"></param> /// <returns></returns> public static List<T> JSONStringToList<T>(string JsonStr) { List<T> objs = JSON.Instance.ToObject<List<T>>(JsonStr); return objs; } /// <summary> /// JSON文本转对象,指定类型 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="JsonStr"></param> /// <returns></returns> public static object JSONStringToList<T>(string JsonStr, System.Type type) { object objs = JSON.Instance.ToObject(JsonStr,type); return objs; } }
JavaScriptSerializer方式
1、引入命名空间 System.Web.Script.Serialization
2、解析类
public static class JsonHelper { public static JavaScriptSerializer Serializer = new JavaScriptSerializer(); /// <summary> /// 将对象转换成json字符串 /// </summary> /// <param name="o"></param> /// <returns></returns> public static string SerializeObject(object o) { return Serializer.Serialize(o); } /// <summary> /// 将对象转换成特定模型 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="o"></param> /// <returns></returns> public static T JSONObjectToT<T>(object o) { T t=Serializer.ConvertToType<T>(o); return t; } /// <summary> /// json字符串转换成模型对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="json"></param> /// <returns></returns> public static T JSONStringToT<T>(string json) { T t= (T)Serializer.DeserializeObject(json); return t; } /// <summary> /// json字符串转出List对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="JsonStr"></param> /// <returns></returns> public static List<T> JSONStringToList<T>(string JsonStr) { JavaScriptSerializer Serializer = new JavaScriptSerializer(); List<T> objs = Serializer.Deserialize<List<T>>(JsonStr); return objs; } }
0 0
- C#解析json数据的方法
- C#解析json的方法
- c#解析json的方法
- 解析JSON数据的方法
- c# 解析json数据
- C# 解析 Json数据
- c#解析Json数据
- c#解析json数据
- c# 解析json数据
- c#解析json文件的方法
- c#解析json文件的方法
- c#解析json文件的方法
- c#解析json文件的方法
- c#解析json文件的方法
- C#解析JSON的几种方法
- C#解析json文件的方法
- C#解析json文件的方法
- C#解析json文件的方法
- unity播放视频问题杂谈
- jquery实现无刷新滚屏加载
- MFC双缓存绘图实现
- 静态变量
- 【Redis缓存机制】3.key的操作
- C#解析json数据的方法
- CXF客户端(动态调用)
- 表空间与数据文件监控
- 【震惊】15项世界互联网领先科技成果发布!特斯拉、华为等上榜...
- iOS .car 文件内容提取
- centos 7 vsftpd 安装
- iOS开发 ☞ UITabbar
- 使用GPU利用DL学梵高作画–实践
- LeetCode笔记:19. Remove Nth Node From End of List