当前位置: 首页 > news >正文

赤壁专业建站公司学做卤味视频网站

赤壁专业建站公司,学做卤味视频网站,wordpress添加新菜单到导航,珠宝网站模板目录 1、添加Json库 2、数据序列化(对象转 JSON)和反序列化(JSON 转对象)操作 3、序列化 创建和读取Json数据 创建Json数据 定义一个CreateJson方法 读取 解析 Json数据 定义一个ReadJson方法 4、程序运行结果 在 C# 中&…

目录

1、添加Json库

2、数据序列化(对象转 JSON)和反序列化(JSON 转对象)操作

3、序列化 创建和读取Json数据 

创建Json数据  定义一个CreateJson方法

读取 解析 Json数据  定义一个ReadJson方法

4、程序运行结果


在 C# 中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于数据序列化(对象转 JSON)和反序列化(JSON 转对象)操作。

特点类别具体说明
数据格式键值对、数组、字符串、数字、布尔值和 null 组成,结构简洁易读,便于解析
核心功能序列化:将 C# 对象转换为 JSON 字符串(便于存储 / 传输)
反序列化:将 JSON 字符串转换为 C# 对象(便于程序处理)
主流处理库System.Text.Json:.NET 内置官方库,性能优异,支持多数基础和中等复杂度场景
Newtonsoft.Json(Json.NET):第三方库,功能丰富,兼容性强,适合复杂场景(如自定义转换)
类型映射需保证 C# 类属性与 JSON 字段在名称、类型上匹配,支持自定义映射配置
结构支持可处理嵌套对象、多层数组等复杂 JSON 结构,满足多样化数据表示需求
可配置性支持自定义序列化选项(如日期格式、大小写转换、忽略空值等)

1、添加Json库

点击VS中的解决方案资源管理器,右键项目,选中项目中的管理NuGet程序包

点击浏览,搜索Json,下载下图这个最新版本的Newtonsoft.Json

点击应用

点击已安装查看,安装成功

这个Json库的官网手册链接:Json.NEThttps://www.newtonsoft.com/json/help/html/Introduction.htm#!

2、数据序列化(对象转 JSON)和反序列化(JSON 转对象)操作

首先创建一个Student类

 internal class Student{public string Name { get; set; }public int Id { get; set; }public bool Sex { get; set; }public string Address { get; set; }public Student(string name, int id, bool sex, string address){Name = name;Id = id;Sex = sex;Address = address;}}

创建一个Student类的对象stu1,将对象序列化为Json对象 并将对象中的数据 转化为Json数据储存在字符串ObjJson 中。

JsonConvert.SerializeObject 是第三方库 Newtonsoft.Json(Json.NET) 提供的核心方法,用于将 C# 对象序列化为 JSON 字符串。

Student stu1 = new Student("李四", 000000, true, "河南省郑州市高新区");
//将对象 序列化为Json对象  将对象中的数据 转化为Json数据
string ObjJson = JsonConvert.SerializeObject(stu1);

解析对象 反序列化  就是将Json数据 转回为原有类型

JsonConvert.DeserializeObject 是 Newtonsoft.Json(Json.NET)库中用于将 JSON 字符串反序列化为 C# 对象

Student stu = JsonConvert.DeserializeObject<Student>(ObjJson);
//打印解析出的数据
Console.WriteLine(stu);
Console.WriteLine(stu.Name);
Console.WriteLine(stu.Id);
Console.WriteLine(stu.Sex);
Console.WriteLine(stu.Address);

 将对象的数据存储在文件中

 将stu对象的数据 转化为字符串str1存在文件Json数据1.txt中

 string path1 = Directory.GetCurrentDirectory() + "\\Json数据1.txt";string str1 = stu.ToString();using (StreamWriter sw = new StreamWriter(path1, false)){sw.WriteLine(stu);}

3、序列化 创建和读取Json数据 

主函数

//路径默认运行文件夹   \bin\Debug\net8.0
string path = Directory.GetCurrentDirectory() + "\\Json数据.txt";
//序列化 创建Json数据
CreateJson(path);
//读取Json数据
ReadJson(path);

创建Json数据  定义一个CreateJson方法

public static void CreateJson(string path)
{//创建一个Json对象JObject J = new JObject();// 添加数据{ "name":"张三",  "id" : 123456 ,"sex":"男" ,"Color" : ["red","blue","yellow"]}//第一种向Json对象中添加数据的方式  索引器J["name"] = "张三";J["id"] = 123456;// 第二种添加数据的方式 AddJ.Add("sex", "男");//第三种 创建一个Json数组 使用Add添加JArray Ja = new JArray();Ja.Add("red");Ja.Add("blue");Ja.Add("yellow");J.Add("Color", Ja);//键为Color  值为Ja Json数组

其中,JArray 是 Newtonsoft.Json(Json.NET)库中用于处理 JSON 数组的核心类,继承自 JContainer,实现了 IEnumerable<JToken> 接口。它允许开发者在不预先定义实体类的情况下,灵活地创建、解析、修改和查询 JSON 数组,是处理动态或未知结构 JSON 数据的重要工具。

将Json对象的数据 转化为字符串写入  Json数据.txt 文件中

    //将Json对象的数据 转化为字符串string str = J.ToString();using (StreamWriter sw = new StreamWriter(path, false)){sw.WriteLine(str);}
}

读取 解析 Json数据  定义一个ReadJson方法

public static void ReadJson(string path)
{string strjson;// 读取Json数据的文件using (StreamReader sr = new StreamReader(path)){//ReadToEnd 一次性读取流或文本中的所有剩余内容,并以字符串形式返回。strjson = sr.ReadToEnd();}//将Json数据格式的字符串 转化为Json对象JObject J = JObject.Parse(strjson);

 提取数据

        解析出来之后 使用的话就接收  如果只是看一下数据 直接打印即可

    //引用键,将值转换为字符串打印string name = J["name"].ToString();Console.WriteLine(name);Console.WriteLine(J["id"]);Console.WriteLine(J["sex"]);Console.WriteLine(J["Color"]);//正确读取键Color中的值 Json数组的内容foreach (var item in J["Color"]){Console.WriteLine(item);}//创建一个数组接收键Color的值,键Color的值是一个数组,这里就相当于数组里面套数组JArray ja = new JArray(J["Color"]);//[["red","blue","yellow"]]  形成了多维数组了//这里遍历只有一个内容 ["red","blue","yellow"]foreach (var item in ja){Console.WriteLine(item);}
}

程序运行结果

写入成功:

http://www.dtcms.com/a/577126.html

相关文章:

  • 3d光学轮廓仪如何局部测量标准台阶?
  • 【数据集+完整源码】水稻病害数据集,yolov8水稻病害检测数据集 6715 张,目标检测水稻识别算法实战训推教程
  • 3D Gaussian Splatting:渲染流程
  • 云原生LVS+Keepalived高可用方案(二)
  • IBM VO 面试经验分享|一场更像“聊天”的正式考核
  • 用单位的服务器做网站关键词优化网站
  • C语言基础开发入门系列(八)C语言指针的理解与实战
  • 如何绑定网站域名解析电商网站模板html
  • 【机器视觉通用检测框架】基于VS2019 C#+VisionPro9.0开发的视觉框架软件,全套源码,开箱即用
  • 智慧交通管理新范式 基于深度学习的城市交通车型识别AI监控系统 车型识别 停车场车型分类系统 高速路车型识别算法
  • pnpm 安装依赖后 仍然启动报的问题
  • 【河北政务服务网-注册_登录安全分析报告】
  • 深入理解 package.json:前端项目的 “身份证“
  • 【辽宁政务服务网-注册_登录安全分析报告】
  • 免费正能量励志网站建设网站要多久到账
  • 新乡市红旗区建设局网站网页制作素材网有哪些
  • 用车申请车辆管理小程序开发
  • 单片机.RS485
  • 从单模型到多域自由转换:StarGAN的公式与多域图像生成魔法
  • 人工智能在全球多领域的应用潜力及当前技术面临的挑战
  • Python处理json数据
  • go开发规范指引
  • 期权交易中的希腊字母:风险管理的多维指南
  • C++---关键字constexpr
  • 广州购物网站公司地址广州网站建设
  • 手术机器人多传感器数据融合 × 深度学习前沿研究精要(2024-2025)
  • 火山引擎升级AI云原生套件:AgentKit、ServingKit、TrainingKit全链路加速AI应用落地
  • Git命令速查手册
  • 随机链表的复制 (带random的链表深度拷贝)| C语言实现
  • 大仓库推到GitHub大踩坑-Git LFS从安装到使用