本文实例讲述了C#实现JSON和对象之间互相转换功能。分享给大家供大家参考,具体如下:
1.首先是声明用户信息对象,DataContract修饰类,表示可以被解析成JSON,DataMember修饰属性,Order表示 解析的顺序,另外Lover是数组列表,表示女朋友个数
Address 表示送货地址,DailyRecord 表示日常记录
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization; namespace FunctionTest.Model { [DataContract] public class UserInfo { [DataMember(Order =0)] public string UserName { get; set; } [DataMember(Order = 1)] public int Age { get; set; } [DataMember(Order = 2)] public int Gender { get; set; } [DataMember(Order =3)] public List<string> Lover { get; set; } [DataMember(Order = 4)] public ContactAddress Address { get; set; } [DataMember(Order = 5)] public Dictionary<string, string> DailyRecord { get; set; } } [DataContract] public class ContactAddress { [DataMember(Order =0)] public string Province { get; set; } [DataMember(Order = 1)] public string City { get; set; } [DataMember(Order = 2)] public string Country { get; set; } [DataMember(Order = 3)] public string Details { get; set; } } }
2.JSON帮助类 核心代码
/// <summary> /// Json转换成对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="jsonText"></param> /// <returns></returns> public static T JsonToObject<T>(string jsonText) { DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonText)); T obj = (T)s.ReadObject(ms); ms.Dispose(); return obj; } /// <summary> /// 对象转换成JSON /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj"></param> /// <returns></returns> public static string ObjectToJSON<T>(T obj) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T)); string result = string.Empty; using (MemoryStream ms = new MemoryStream()) { serializer.WriteObject(ms, obj); ms.Position = 0; using (StreamReader read = new StreamReader(ms)) { result = read.ReadToEnd(); } } return result; }
3.调用
//1.对象-->JSON UserInfo info = new UserInfo { Age = 10, Gender = 1, UserName = "刘德华", Lover = new List<string> { "美女1", "美女2", "美女3" }, Address = new ContactAddress { Province = "湖南省", City = "长沙市", Country = "望城县", Details = "某旮旯快递找不到的地方" }, DailyRecord = new Dictionary<string, string> { { "星期一", "吃饭" }, { "星期二", "洗衣服" }, { "星期三", "好事情" } } }; string json = ObjectToJSON<UserInfo>(info);
4.反序列化后的结果
{"UserName":"刘德华","Age":10,"Gender":1,"Lover":["美女1","美女2","美女3"],"Address":{"Province":"湖南省","City":"长沙市","Country":"望城县","Details":"某旮旯快递找不到的地方"},"DailyRecord":[{"Key":"星期一","Value":"吃饭"},{"Key":"星期二","Value":"洗衣服"},{"Key":"星期三","Value":"好事情"}]}
PS:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用:
在线JSON代码检验、检验、美化、格式化工具:
http://tools.jb51.net/code/json
JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat
在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson
json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.jb51.net/code/jsoncodeformat
在线json压缩/转义工具:
http://tools.jb51.net/code/json_yasuo_trans
更多关于C#相关内容还可查看本站专题:《C#字符串操作技巧总结》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#程序设计之线程使用技巧总结》、《C#中XML文件操作技巧汇总》、《C#数据结构与算法教程》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程》
希望本文所述对大家C#程序设计有所帮助。
本文向大家介绍php实现xml与json之间的相互转换功能实例,包括了php实现xml与json之间的相互转换功能实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现xml与json之间的相互转换功能。分享给大家供大家参考,具体如下: 用php实现xml与json之间的相互转换: 相关函数请查看php手册。 一、参考xml如下 二、xml转换成json 利用simplexml 三
本文向大家介绍Java实现的时间戳与date对象相互转换功能示例,包括了Java实现的时间戳与date对象相互转换功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java实现的时间戳与date对象相互转换功能。分享给大家供大家参考,具体如下: 一.日期转换为时间戳 二.时间戳转换为date 型 系统获取时间戳 : PS:这里再为大家推荐几款时间及日期相关工具供大家参考使用: Uni
本文向大家介绍Python3实现的字典、列表和json对象互转功能示例,包括了Python3实现的字典、列表和json对象互转功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python3实现的字典、列表和json对象互转功能。分享给大家供大家参考,具体如下: python3可以使用json模块操作json json.dumps(): 对json进行编码,对应php的json_en
本文向大家介绍java中实体类和JSON对象之间相互转化,包括了java中实体类和JSON对象之间相互转化的使用技巧和注意事项,需要的朋友参考一下 在需要用到JSON对象封装数据的时候,往往会写很多代码,也有很多复制粘贴,为了用POJO的思想我们可以装JSON转化为实体对象进行操作 以上所述就是本文的全部内容了,希望大家能够喜欢。
本文向大家介绍Java实现文件和base64流的相互转换功能示例,包括了Java实现文件和base64流的相互转换功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java实现文件和base64流的相互转换功能。分享给大家供大家参考,具体如下: PS:这里再推荐几款加密解密相关在线工具供大家参考使用: 线编码转换工具(utf-8/utf-32/Punycode/Base64): ht
本文向大家介绍jQuery对象与DOM对象之间的相互转换,包括了jQuery对象与DOM对象之间的相互转换的使用技巧和注意事项,需要的朋友参考一下 1、jQuery对象转换成DOM对象 jQuery对象不能使用DOM中的方法,但如果对jQuery对象所提供的方法不熟悉,或者jQuery没有封装想要的方法,不得不使用DOM对象的时候,有以下两种处理方法: 1、jQuery对象是一个类似数组的对象,可