一:序列化和反序列化
序列化:把对象转换成字节序列的过程
反序列化:把字节序列还原成对象的过程
注意: 所有的序列化和反序列化的操作都是基于属性的 跟类型的行为没有关系
目的:持久化(持久的是这个类型的属性)
(比如:留照片留影像,但是展示不出成长中的众多事件)
高级语言:面向对象 面向过程 基于对象
格式:xml, Json (表示 Javascript 对象 但是 Javascript 没有new对象语言 所以想出了json串)
结构:键值对结构
优点:可以表示很复杂的数据
二:Json语法
1:标点符号
{ }表示这是一个类型的对象
[ ]表示是数组或者集合
:用来分割键和值
“ ”用在属性名上
,每个键值对用逗号分割( 最后的键值对没有逗号 )
2:Json允许的属性值类型
string √ char×
整数 小数 √
bool √
数组、集合 √
自定义类型 √
注意:绿色波浪线代表语法错误
3:小练习(一)
第一步:写Json文件,可以先用文档txt写,然后改一下后缀名为json
第二步:C#脚本里添加引用
+using Newtonsoft.Json;
第三步:创建类
注意:单击右键 json文件, 始终复制
json文件和上面的属性必须一一对应
补充书写总结:(先折叠 看括号 从里到外写类)
第一种:
第二种:
第三种:
第四步:解析
对应上面第一种:
对应上面第二种:
对应上面第三种:【 对象里面带了集合 所以需要再写一个类】
因为有集合 所以用了stringbuilder
注意:
1:匹配的类:
在声明一个类型的时候 所有的json中的属性名和类中的属性名必须保持一致
2:抽象方法不在普通类里 不能匹配json解析 用虚方法
4:小练习(二)
如果文件里有集合名:
(注意:不是所有的类库都能解析出double 用 float )
1先创建tank类 再写一个class类
2声明一个集合
如果文件里没有集合名:
1先写一个武器类
2主函数里直接存放