一、JsonUtility


1. 什么是JsonUtility

JsonUtiUtlity是Unity自带的用于解析JSON的公共类。

  • 1.将内存中对象序列化成为Json格式的字符串
  • 2.将Json字符串反序列化为类对象

2. 在文件中存读字符串

  • (1) 存储字符串到指定路径文件中

    1
    File.WritellText(Application.persistentDataPath+"Test.json","wqx存储的json文件")l;

①第一个参数:存储路径。

②第二个参数:存储的字符串的内容。

注:文件不存在,可以自己自动创建。但是不能创建文件夹,路径有未创建的文件夹会报错

  • (2) 在指定路径文件中读取字符串

    1
    string str = File.ReadAllText(路径同上);

3. JsonUtility序列化

序列化:把内容中的数据存储在硬盘上。

方法:JsonUtility.ToJson(对象)

  • 注:
    • float序列化时看起来会有一些误差。
    • 自定义类需要加上序列化特性[System.Serializable]
    • 想要序列化私有变量 需要加上特性[SerializeField]
    • JsonUtility不支持字典
    • JsonUtility存储null对象 不会是null,而是默认的数据类型。(类定义的默认值)

4.JsonUtility反序化

反序列化:把硬盘上的数据,读取到内存中。

方法:

1
string str = JsonUtility.FromJson(字符串)
  • 注:如果Json中数据少了,读取到内容中类对象不会报错

(1) 先读取文件中的Json的字符串

1
jsonStr File.ReadAllText(路径)

(2) 用Json字符串反序列化成类对象

1
MrTang t3 = JsonUtility.FromJson<MrTang> (jsonStr);

5. 注意事项

  • (1)JsonUtility无法直接读取数据集合。就是无法读取数据集合类,比如List<>。必须包裹在一个对象里。
  • (2)