C#中JSON和对象之间互相转换功能示例
本文实例讲述了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":"好事情"}]}
C#中JSON和对象之间互相转换功能示例相关推荐
- Flutter json 和 对象之间的转换
这里写的是 Flutter 自带的 convert 的 json 转换.下面以 3 个实例来说明. 一.自定义对象中不再嵌套其他对象: class Student {String name;int a ...
- Python:json数据与Python对象之间的转换
json数据与Python对象之间的转换 1.前面介绍了在Python中如何处理json数据,主要使用了以下几个方法 ⑴dumps():将Python对象转换为JSON格式的字符串 ⑵ ...
- JSON字符串和对象之间的转换
使用jackSON来实现JSON字符串和对象之间的转换 引入maven <!--jackson--><dependency><groupId>com.fasterx ...
- xml和对象之间的互相转换以及json和对象之间的互相转换
首先先讲json和对象之间的互相转换,因为这个比较简单. 首先引入依赖 <dependency> <groupId>com.alibaba</groupId> &l ...
- IDEA使用GsonFormat完成JSON和JavaBean之间的转换
点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达今日推荐:分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!个人原创100W +访问量博客:点 ...
- 遇到MapStruct后,再也不手写PO,DTO,VO对象之间的转换了
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:腾讯推出高性能 RPC 开发框架 个人原创100W+访问量博客:点击前往,查看更多 介绍 在工作中,我们经常要进 ...
- C++中数字与字符串之间的转换 scanf string总结(复习必读)
1 string的scanf读入操作 C++里面控制台输入直接使用cin操作就可以了:或者getline(istringstream,string); 字符和数字加减就是字符的ASCII码和数字直接加 ...
- java子类和父类实例_java中父类与子类之间的转换示例
java中父类与子类之间的转换示例有以下三点: 示例一 父类强制转子类 pre class="brush:php;toolbar:false">Father f = new ...
- pythonunicode和str_python2 中 unicode 和 str 之间的转换及与python3 str 的区别
在python2中字符串分为 unicode 和 str 类型 Str To Unicode 使用decode(), 解码 Unicode To Str 使用encode(), 编码 返回数据给前端时 ...
最新文章
- 服务器php 启动命令_服务端的cli方式运行
- 推荐系列文章:《DotText源码阅读》
- keepalived 安装
- 我的worktools集合们
- 币安宣布Terence Zeng担任大中华区业务负责人
- Java知识点汇总以及常见面试题
- c语言程序求对称矩阵,C中使用CBLAS/LAPACK的对称矩阵求逆
- 计算机上面的清除键是什么符号,电脑上删除键是哪一个
- 【PMAC】Chapter2:Pewin Pro32出现EAccessViolation
- imageView图片放大缩小及旋转
- VRChat_SDK3_Avatar
- 常见的数据结构面试题
- php post发微博,php结合redis实现高并发下发帖、发微博的方法
- 外文文献翻译(OCR+Deepl+Mathpix)|CSDN创作打卡
- 微信小程序实战练习(仿五洲到家微信版)
- 五年SEO经验分享之用户提升关键词排名。
- R语言基础之用R语言绘制各类函数图像
- 【第113期】聊聊网易某工作室的策划笔试题
- 在vue中展示甘特图
- C++对csv文件的读写操作
热门文章
- 化验室计算机系统验证风险评估,计算机化系统验证风险评估报告.doc
- r语言将百分数化为小数_C语言入门学习(一)
- undefined reference to `__errno‘ 解决办法
- 5g理论速度_5G网络相当于500M宽带是真的吗?
- 大快人心,盗版串口芯片CH340的被判刑了,公司被罚400万!
- 21年编程,那些我踩过的坑!
- 详解MOS管、IGBT管,不看就亏大了!
- 致初级开发者的一封信:坚持写代码!
- 【荐读】一名95后的嵌入式软件工程师,成长之路!
- java socket ip_JAVA 网络编程 TCP/IP、Socket 和协议设计