目录
JsonUtility.FromJson(string json);
JsonUtility.FromJsonOverwrite(sting json,object newObj)
一、API的介绍
JsonUtility.ToJson()
当只含有一个参数的时候:
string ToJson (object obj);
当含有两个参数的时候:
string ToJson (object obj, bool prettyPrint);
多出一个bool类型的参数,该表示是否将json当中的数据格式化输出以实现可读性,即转换为更方便阅读的格式,如果是true则转化,但是如果是false则不转换。默认值为false。
在传入的对象object obj必须受序列化器支持,它必须是 MonoBehaviour、ScriptableObject 或应用了 Serializable 属性的普通类/结构。不受支持的字段以及私有字段、静态字段和应用了 NonSerialized 属性的字段会被忽略。(不能是单个变量,必须是标识了Serializable的类和结构)
JsonUtility.FromJson(string json);
JsonUtility.FromJson(string json);
将json格式的字符串,转换为unity序列化支持的对象,将原本存储的JsonUtility.ToJson()的json转换成未存储之前的格式/样式
例如一开始创建的一个Serializable 属性的Student类,那么转换为json格式的时候为
string json=JsonUtility.ToJson(Student,true);
那么我们则从json文件转换为原来的对象则为
var data=JsonUtility.FromJson<Student>(json);
JsonUtility.FromJsonOverwrite(sting json,object newObj)
JsonUtility.FromJsonOverwrite(sting json,object newObj)
与JsonUtility.FromJson(string json);的用法相似。JsonUtility.FromJsonOverwrite
含有两个参数。当在将将json格式的字符串,转换为新的unity序列化支持的对象(newObj)。
覆盖了原来的对象。
二、实例
1.创建信息类
首先创建一个信息类,来表示我们所要存储的信息。同时注意这个信息类必须用[System.Serializable]标识。因为使用json的时候使用传入的对象必须受序列化器支持。
2.创建存档功能
注:创建方法命名为SaveData(string SaveName,Object obj),这个方法当中含有两个参数,string SaveName用来存储我们所要创建的文件名(下同),Object obj则是我们要将转换成json的对象。
3.创建读档功能
4.创建删档功能
注:上面我们要调用的DisPlayerText()方法,主要是显示检查器当中的信息在UI组件上面。
5.调用
注:INput就是我们创建的string类型的SaveName。