Unity集換式卡牌游戲_Dictionry序列化成json
在開始講解這一章節(jié)前,我們需要了解,什么是 Json.
Json
他的全稱是 JavaScript Object Notation 【JavaScript 對象表示法】
JSON 是存儲和交換文本信息的語法
。類似 XML。json是基于ECMAScript
語法,但這并不意味著 json 必須在 js 中使用,或者必須要產(chǎn)生什么聯(lián)系, json 在 js 中的處理也并沒有比其他語言占有更多優(yōu)勢。只是因為語法相似,而使得js開發(fā)者能更快的上手 json 而已。
JSON采用完全獨立于任何程序語言的文本格式,但是也使用了類似于 C 語言家族的習(xí)慣(包括 C、C++、C#、Java、JavaScript、Perl、Python 等)。這些特性使 JSON 成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。
典型的 Json 數(shù)據(jù)
Json 語法規(guī)則
數(shù)據(jù)在?
鍵值對
?中數(shù)據(jù)由逗號 , 分隔
使用斜桿 \ 來轉(zhuǎn)義字符
大括號 {} 保存對象
中括號 [] 保存數(shù)組,數(shù)組可以包含多個對象
json 的值
數(shù)字(整數(shù)或浮點數(shù))
字符串(在雙引號中)
邏輯值(true 或 false)
數(shù)組(在中括號中)
對象(在大括號中)
null
JsonUtility
JsonUtility 是 Unity 提供的一個工具類,用于序列化和反序列化 Json 數(shù)據(jù)。
使用方法
注意事項
僅支持 MonoBehaviour / ScriptableObject 繼承類的序列化
僅支持 [Serializable] 的普通類與結(jié)構(gòu)體
僅序列化 public 或 [SerializeField] 標(biāo)簽的字段
在內(nèi)部,此方法使用 Unity 序列化器;因此傳入的對象必須受序列化器支持:它必須是 MonoBehaviour、ScriptableObject 或應(yīng)用了 Serializable 屬性的普通類/結(jié)構(gòu)。要包含的字段的類型必須受序列化器支持;不受支持的字段以及私有字段、靜態(tài)字段和應(yīng)用了 NonSerialized 屬性的字段會被忽略。
支持 List、Array 數(shù)據(jù)類型,但不支持 Dictionary、Query、Stack 等集合
支持 Enum 枚舉,但默認存儲值為數(shù)值類型
字典的序列化和反序列化

本文作于2023-08-21,首發(fā)于個人博客https://rdququ.top/