.Net Json解析帮助类
来源:互联网 发布:神户大学 知乎 编辑:程序博客网 时间:2024/05/16 05:27
/// <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; } /** * 对象的全部属性和属性值。用于填写json的{}内数据 * 生成后的格式类似 * "属性1":"属性值" * 将这些属性名和属性值写入字符串列表返回 * */ private static List<string> GetObjectProperty(object o) { List<string> propertyslist = new List<string>(); PropertyInfo[] propertys = o.GetType().GetProperties(); foreach (PropertyInfo p in propertys) { propertyslist.Add("\"" + p.Name.ToString() + "\":\"" + p.GetValue(o, null) + "\""); } return propertyslist; } /** * 将一个对象的所有属性和属性值按json的格式要求输入为一个封装后的结果。 * * 返回值类似{"属性1":"属性1值","属性2":"属性2值","属性3":"属性3值"} * * */ private static string OneObjectToJSON(object o) { string result = "{"; List<string> ls_propertys = new List<string>(); ls_propertys = GetObjectProperty(o); foreach (string str_property in ls_propertys) { if (result.Equals("{")) { result = result + str_property; } else { result = result + "," + str_property + ""; } } return result + "}"; } /** * 把对象列表转换成json串 * */ public static string toJSON<T>(List<T> objlist) {//覆写,给懒人一个不写classname的机会 return toJSON(objlist, string.Empty); } public static string toJSON<T>(List<T> objlist, string classname) { string result = ""; if (classname.Equals(string.Empty))//如果没有给定类的名称,那么自做聪明地安一个 { object o = objlist[0]; classname = o.GetType().ToString(); } result += "["; bool firstline = true;//处理第一行前面不加","号 foreach (object oo in objlist) { if (!firstline) { result = result + "," + OneObjectToJSON(oo); } else { result = result + OneObjectToJSON(oo) + ""; firstline = false; } } return result + "]"; } }
阅读全文
0 0
- .Net Json解析帮助类
- NET JSON XML帮助类
- asp.net JSONHelper JSON帮助类
- JSONHelper JSON帮助类
- JSON帮助类
- JSON 帮助类
- C#json帮助类
- JSON帮助类
- .net中解析json 之 DataContractJsonSerializer类
- .net中解析json 之 DataContractJsonSerializer类
- .net中解析json 之 DataContractJsonSerializer类
- .net中解析json 之 DataContractJsonSerializer类
- .Net解析JSON数据
- .net下解析json
- .Net解析JSON字符串
- .Net中解析Json
- .net中解析json 之 json.net
- .Net文件夹帮助类
- 解决boostrap字符图标无法显示问题
- 分布式开发——JAVA自身系统通信方式
- 关于Mybatis
- 像机器一样思考(二)—— 数据的细节
- 了解以下六个AI热门领域不再混淆AI与机器学习~
- .Net Json解析帮助类
- JS-getelement用法
- Xcode控制台输出json数据乱码转为中文
- NOI2012 随机数生成器 一道noi水题 error:爆int
- 调用快排函数总结
- apache-comnons系列之commons-codec1.11 学习笔记
- 像机器一样思考(三)—— 穷尽就是力量
- spring学习之---spring的事务
- ROS探索总结汇总