JSON序列化与反序列化实战指南

《序列化和反序列化》

//文件内容存储的格式

//1 json格式,\[\] 代表数组 {}代表对象,

//json字符串要求:属性必须使用""括起来,属性值可以基本数据类型也可以对象类型,不能是函数

//最后一个属性值不能带逗号

/*json字符串格式

* {

* "name":"zs",

* "age":10

* }

*/

//序列化:把对象转成字符串

//反序列化:把字符串格式转成对象

//目的:先把对象转成json字符串格式。再通过之前学的写入写到文本当中

// 读取的线从文档读取成一个字符串,再把字符串转成对应的对象,

//2 xml格式

//3 ini格式

//4 csv格式

//直接使用第三方进行json序列化

//使用JSon.net第三方:点击引用-->管理nuget程序包--->切换浏览输入第三方包名关键字---->点击右边安装

//1把对象存储到文档中

People p1 = new People() { Name="张三",Age=10};

//把对象转成json字符串

//序列化过程

//SerializeObject()解析对象,把对象转成字符串,参数转成字符串的对象 例如p1转成字符串

string datastring= JsonConvert.SerializeObject(p1);

//Console.WriteLine(datastring+"------");

//写入指定文档

File.WriteAllText(@"1.txt",datastring);

//2读取

string ss = File.ReadAllText(@"1.txt");

//反序列化过程

//把字符串转成对象

People pp= JsonConvert.DeserializeObject<People>(ss);

Console.WriteLine(pp.Name+"----"+pp.Age);

《数组转成json格式》

List<Student> list = new List<Student>();

for (int i = 0; i < 10; i++)

{

Student s=new Student();

s.Name = "仓" + i + "号";

s.Age = i + 18;

s.Id = "00" + i;

list.Add(s);

}

//把数组转成json字符串 存储本地文档

string data= JsonConvert.SerializeObject(list);

//Console.WriteLine(data);

using (StreamWriter sw = new StreamWriter(@"1.json"))

{

sw.WriteLine(data);//写入文档

}

//读取本地文件值是字符串

using (StreamReader sr=new StreamReader(@"1.json"))

{

string lines;

while ((lines = sr.ReadLine()) != null)

{

List<Student> list1 = JsonConvert.DeserializeObject<List<Student>>(lines);

for (int i = 0; i < list1.Count; i++)

{

Console.WriteLine(list1i.Name + "--------" + list1i.Age);

}

// Console.WriteLine(lines);

}

//把字符串转成对象

相关推荐
codigger21 分钟前
线上数据库连接池打满:从应急止损到架构根治的完整方案
数据库·sql·程序员
倔强的石头_27 分钟前
集中式与分布式怎么选?我把手头11套系统重新过了一遍秤
数据库
挖掘狂人29 分钟前
线上数据库连接池打满:从应急止损到架构根治的完整方案
数据库·sql·程序员
Rainmicro1 小时前
【无标题】
java·数据库·算法
Thanks_ks1 小时前
MySQL 的索引是什么?用图书馆的目录讲明白
数据库·sql·mysql·索引·联合索引·explain·慢查询优化
CoderYanger7 小时前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第二弹)
java·数据库·spring boot·spring·面试·java-ee·mybatis
wafrdggh10 小时前
2026电商快递批量查询怎么用?固乔助手模板设置评测
大数据·数据库·小程序
一个天蝎座 白勺 程序猿10 小时前
KingbaseES数据库归档重做日志文件管理:从配置到运维的实战指南
运维·数据库·oracle·kingbasees·金仓数据库
龙腾AI白云13 小时前
仿真到现实(Sim-to-Real)迁移:跨越仿真与现实鸿沟
数据库·机器学习·plotly·知识图谱·tornado
freejackman16 小时前
【实战二】字段级血缘追踪:拆解 AST 迷局,精准穿透函数链与子查询
大数据·数据库·sql