Unity自帶的Json解析類 JsonUtility 有幾點要注意:
1.【序列化時(內存到硬盤)】:
用 :JsonUtility.ToJson(對象)
注意:
1.float 序列化會有數據誤差
2.自定義類 嵌套自定義類,里面那個類 需要加上序列化特性[System.Serializable]
3.想要序列化私有變量,需要加上特性[SerializeField]
4.JsonUtility 不支持 C#中的字典集合 Dictionary
5.JsonUtility 存儲null 對象不會是 null ,而是默認值。
2.【反序列化(硬盤到內存)時】:
有兩個方法(比如我們是一個Apple類):
方法一:
Apple a1 = JsonUtility.FromJson(jsonStr, typeof(Apple)) as Apple;
方法二:
Apple a2 = JsonUtility.FromJson《Apple》(jsonStr); //★ 這里Apple 外面是泛型。本來單尖括號,但是博客園保存不上,只能寫雙尖括號了
注意:1.JsonUtility 無法直接讀取數據集合:比如一個Json 文件,最外層是[]數組 而不是{} 對象 ,這樣的json文件不能讀,除非再改成最外面是 {} 對象格式。
2.文檔編碼格式 必須是UTF-8