本文实例讲述了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和对象之间互相转换功能示例相关推荐

  1. Flutter json 和 对象之间的转换

    这里写的是 Flutter 自带的 convert 的 json 转换.下面以 3 个实例来说明. 一.自定义对象中不再嵌套其他对象: class Student {String name;int a ...

  2. Python:json数据与Python对象之间的转换

    json数据与Python对象之间的转换 1.前面介绍了在Python中如何处理json数据,主要使用了以下几个方法     ⑴dumps():将Python对象转换为JSON格式的字符串     ⑵ ...

  3. JSON字符串和对象之间的转换

    使用jackSON来实现JSON字符串和对象之间的转换 引入maven <!--jackson--><dependency><groupId>com.fasterx ...

  4. xml和对象之间的互相转换以及json和对象之间的互相转换

    首先先讲json和对象之间的互相转换,因为这个比较简单. 首先引入依赖 <dependency> <groupId>com.alibaba</groupId> &l ...

  5. IDEA使用GsonFormat完成JSON和JavaBean之间的转换

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达今日推荐:分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!个人原创100W +访问量博客:点 ...

  6. 遇到MapStruct后,再也不手写PO,DTO,VO对象之间的转换了

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:腾讯推出高性能 RPC 开发框架 个人原创100W+访问量博客:点击前往,查看更多 介绍 在工作中,我们经常要进 ...

  7. C++中数字与字符串之间的转换 scanf string总结(复习必读)

    1 string的scanf读入操作 C++里面控制台输入直接使用cin操作就可以了:或者getline(istringstream,string); 字符和数字加减就是字符的ASCII码和数字直接加 ...

  8. java子类和父类实例_java中父类与子类之间的转换示例

    java中父类与子类之间的转换示例有以下三点: 示例一 父类强制转子类 pre class="brush:php;toolbar:false">Father f = new ...

  9. pythonunicode和str_python2 中 unicode 和 str 之间的转换及与python3 str 的区别

    在python2中字符串分为 unicode 和 str 类型 Str To Unicode 使用decode(), 解码 Unicode To Str 使用encode(), 编码 返回数据给前端时 ...

最新文章

  1. 服务器php 启动命令_服务端的cli方式运行
  2. 推荐系列文章:《DotText源码阅读》
  3. keepalived 安装
  4. 我的worktools集合们
  5. 币安宣布Terence Zeng担任大中华区业务负责人
  6. Java知识点汇总以及常见面试题
  7. c语言程序求对称矩阵,C中使用CBLAS/LAPACK的对称矩阵求逆
  8. 计算机上面的清除键是什么符号,电脑上删除键是哪一个
  9. 【PMAC】Chapter2:Pewin Pro32出现EAccessViolation
  10. imageView图片放大缩小及旋转
  11. VRChat_SDK3_Avatar
  12. 常见的数据结构面试题
  13. php post发微博,php结合redis实现高并发下发帖、发微博的方法
  14. 外文文献翻译(OCR+Deepl+Mathpix)|CSDN创作打卡
  15. 微信小程序实战练习(仿五洲到家微信版)
  16. 五年SEO经验分享之用户提升关键词排名。
  17. R语言基础之用R语言绘制各类函数图像
  18. 【第113期】聊聊网易某工作室的策划笔试题
  19. 在vue中展示甘特图
  20. C++对csv文件的读写操作

热门文章

  1. 化验室计算机系统验证风险评估,计算机化系统验证风险评估报告.doc
  2. r语言将百分数化为小数_C语言入门学习(一)
  3. undefined reference to `__errno‘ 解决办法
  4. 5g理论速度_5G网络相当于500M宽带是真的吗?
  5. 大快人心,盗版串口芯片CH340的被判刑了,公司被罚400万!
  6. 21年编程,那些我踩过的坑!
  7. 详解MOS管、IGBT管,不看就亏大了!
  8. 致初级开发者的一封信:坚持写代码!
  9. 【荐读】一名95后的嵌入式软件工程师,成长之路!
  10. java socket ip_JAVA 网络编程 TCP/IP、Socket 和协议设计