C# .net中json字符串和对象之间的转化方法
json作为作为一种最常用的数据,应用很广泛,在.net中如何把一个对象转化为json字符串呢?
主要有一下几种
1按照json的定义自己转化,难度很大,但很灵活。需要自己处理各种特殊字符,各种数据类型
2使用开源的类库Newtonsoft.Json
3使用JavaScriptSerializer类
4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory实现。
1按照json的定义自己转化,难度很大,但很灵活。需要自己处理各种特殊字符,各种数据类型
要写成通用的核心就是使用反射。
2使用开源的类库Newtonsoft.Json,很方便,.net的各个版本都有。
/// <summary> /// 对象转为json /// </summary> /// <typeparam name="ObjType"></typeparam> /// <param name="obj"></param> /// <returns></returns> public static string ObjToJsonString<ObjType>(ObjType obj) where ObjType : class { string s = JsonConvert.SerializeObject(obj); return s; } /// <summary> /// json转为对象 /// </summary> /// <typeparam name="ObjType"></typeparam> /// <param name="JsonString"></param> /// <returns></returns> public static ObjType JsonStringToObj<ObjType>(string JsonString) where ObjType : class { ObjType s = JsonConvert.DeserializeObject<ObjType>(JsonString); return s; }
3JavaScriptSerializer类 ,使用.NET Framework 3.5/4.0中提供的System.Web.Script.Serialization命名空间下的JavaScriptSerializer类进行对象的序列化与反序列化。需要添加程序集System.Web.Extensions.dll。
/// <summary> /// 对象转为json /// </summary> /// <typeparam name="ObjType"></typeparam> /// <param name="obj"></param> /// <returns></returns> public static string ObjToJsonString<ObjType>(ObjType obj) where ObjType : class { JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); string s = jsonSerializer.Serialize(obj); return s; } /// <summary> /// json转为对象 /// </summary> /// <typeparam name="ObjType"></typeparam> /// <param name="JsonString"></param> /// <returns></returns> public static ObjType JsonStringToObj<ObjType>(string JsonString) where ObjType : class { JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); ObjType s = jsonSerializer.Deserialize<ObjType>(JsonString); return s; }
4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory实现。
具体参考:http://www.cnblogs.com/txw1958/archive/2012/08/01/csharp-json.html
出处:https://blog.csdn.net/xuexiaodong009/article/details/46998069
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/9411408.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
posted on 2018-08-03 08:50 jack_Meng 阅读(3055) 评论(0) 编辑 收藏 举报