C#实现JSON和对象之间互相转换功能示例
发布时间 - 2026-01-11 03:04:10 点击率:次本文实例讲述了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./code/json
JSON在线格式化工具:
http://tools./code/jsonformat
在线XML/JSON互相转换工具:
http://tools./code/xmljson
json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools./code/jsoncodeformat
在线json压缩/转义工具:
http://tools./code/json_yasuo_trans
更多关于C#相关内容还可查看本站专题:《C#字符串操作技巧总结》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#程序设计之线程使用技巧总结》、《C#中XML文件操作技巧汇总》、《C#数据结构与算法教程》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程》
希望本文所述对大家C#程序设计有所帮助。
# C#
# JSON
# 对象
# 转换
# C#编程实现对象与JSON串互相转换实例分析
# C#实现json格式转换成对象并更换key的方法
# C#中的DataSet、string、DataTable、对象转换成Json的实现代码
# C#中对象与JSON字符串互相转换的三种方式
# 望城县
# 长沙市
# 程序设计
# 湖南省
# 找不到
# 操作技巧
# 旮旯
# 转换成
# 洗衣服
# 转换工具
# 相关内容
# 数据结构
# 给大家
# 还可
# 更多关于
# 所述
# 几款
# 使用技巧
# 面向对象
# 再为
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何用wdcp快速搭建高效网站?
JS实现鼠标移上去显示图片或微信二维码
音乐网站服务器如何优化API响应速度?
如何在云主机快速搭建网站站点?
什么是javascript作用域_全局和局部作用域有什么区别?
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
Laravel如何使用Blade组件和插槽?(Component代码示例)
jQuery 常见小例汇总
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
如何用5美元大硬盘VPS安全高效搭建个人网站?
使用豆包 AI 辅助进行简单网页 HTML 结构设计
公司网站制作价格怎么算,公司办个官网需要多少钱?
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
网站制作壁纸教程视频,电脑壁纸网站?
如何快速搭建虚拟主机网站?新手必看指南
b2c电商网站制作流程,b2c水平综合的电商平台?
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
Laravel如何使用Collections进行数据处理?(实用方法示例)
如何续费美橙建站之星域名及服务?
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
如何在IIS管理器中快速创建并配置网站?
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
Python进程池调度策略_任务分发说明【指导】
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
Laravel怎么上传文件_Laravel图片上传及存储配置
高防服务器租用如何选择配置与防御等级?
Python正则表达式进阶教程_复杂匹配与分组替换解析
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
js实现点击每个li节点,都弹出其文本值及修改
jQuery validate插件功能与用法详解
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
如何在服务器上配置二级域名建站?
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
Python文件操作最佳实践_稳定性说明【指导】
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
晋江文学城电脑版官网 晋江文学城网页版直接进入
香港服务器建站指南:免备案优势与SEO优化技巧全解析
Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】
Linux后台任务运行方法_nohup与&使用技巧【技巧】

