C#解析json数据的方法
2016-11-17 09:34
357 查看
C#解析json数据的方法
本文介绍三种方式使用JavaScriptSerializer解析数据(速度较慢,不建议使用)
使用JsonConvert解析数据(建议使用在,在.net3.5下可以使用)
使用fastJson解析数据(推荐使用,但只支持.net4及以上)
JsonConvert方式
1、引用命名空间:Newtonsoft.Json2、解析类
[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.Serialization2、解析类
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; } }
相关文章推荐
- C# JavaScriptSerializer 解析Json数据(多方法解析Json 三)
- C#实现json格式数据解析功能的方法详解
- js 解析json数据方法
- 用js解析经json序列化后的C#的DateTime类型数据
- Android网络开发中如何使用JSON进行网络通信---Android JSON数据通讯方法解析
- 用jquery解析JSON数据的方法
- 用jquery解析JSON数据的方法
- Android网络开发中如何使用JSON进行网络通信---Android JSON数据通讯方法解析
- 使Ext的Template可以解析二层的json数据的方法
- C# 解析JSON数据格式 Mono 源码
- js 解析json数据方法
- 用jquery解析JSON数据的方法(转)
- 在.Net C#中如何解析json数据(DataContractJsonSerializer类)
- 使Ext的Template可以解析二层的json数据的方法
- 用jquery解析JSON数据的方法
- 用jquery解析JSON数据的方法
- jquery解析JSON数据的方法
- C#json数据解析和xml2json
- 用jquery解析JSON数据的方法
- 用jquery解析JSON数据的方法