一:序列化和反序列化




json 格式化输出 python json格式化算法_c#


序列化:把对象转换成字节序列的过程


反序列化:把字节序列还原成对象的过程



注意: 所有的序列化和反序列化的操作都是基于属性的 跟类型的行为没有关系


目的:持久化(持久的是这个类型的属性)


(比如:留照片留影像,但是展示不出成长中的众多事件)



高级语言:面向对象 面向过程 基于对象


格式:xml, Json (表示 Javascript  对象 但是 Javascript  没有new对象语言 所以想出了json串)



结构:键值对结构


优点:可以表示很复杂的数据




二:Json语法

1:标点符号


{   }表示这是一个类型的对象


[   ]表示是数组或者集合


:用来分割键和值


“ ”用在属性名上


,每个键值对用逗号分割( 最后的键值对没有逗号



2:Json允许的属性值类型


string        √               char×


整数 小数   √ 


bool          √


数组、集合 √


自定义类型 √




注意:绿色波浪线代表语法错误

3:小练习(一)

第一步:写Json文件,可以先用文档txt写,然后改一下后缀名为json



json 格式化输出 python json格式化算法_json_02



第二步:C#脚本里添加引用



+using Newtonsoft.Json;



json 格式化输出 python json格式化算法_c#_03



第三步:创建类




json 格式化输出 python json格式化算法_json_04




注意:单击右键 json文件, 始终复制

json 格式化输出 python json格式化算法_c#_05


 


json文件和上面的属性必须一一对应



json 格式化输出 python json格式化算法_unity_06


补充书写总结:(先折叠 看括号 从里到外写类)

第一种:

json 格式化输出 python json格式化算法_json_07

 

第二种:

json 格式化输出 python json格式化算法_unity_08



第三种:


json 格式化输出 python json格式化算法_unity_09


 


第四步:解析



对应上面第一种:



json 格式化输出 python json格式化算法_json_10




 对应上面第二种:

json 格式化输出 python json格式化算法_json_11

  对应上面第三种:【 对象里面带了集合 所以需要再写一个类】




json 格式化输出 python json格式化算法_unity_12



json 格式化输出 python json格式化算法_c#_13


因为有集合 所以用了stringbuilder



注意:


1:匹配的类:


在声明一个类型的时候 所有的json中的属性名和类中的属性名必须保持一致


2:抽象方法不在普通类里 不能匹配json解析 用虚方法




4:小练习(二)



如果文件里有集合名:




json 格式化输出 python json格式化算法_c#_14


(注意:不是所有的类库都能解析出double 用 float


1先创建tank类 再写一个class类



json 格式化输出 python json格式化算法_json_15



json 格式化输出 python json格式化算法_开发语言_16


2声明一个集合



json 格式化输出 python json格式化算法_json 格式化输出 python_17



如果文件里没有集合名:



json 格式化输出 python json格式化算法_json 格式化输出 python_18



1先写一个武器类



json 格式化输出 python json格式化算法_json 格式化输出 python_19



2主函数里直接存放



json 格式化输出 python json格式化算法_unity_20