欢迎光临散文网 会员登陆 & 注册

Unity集换式卡牌游戏_Dictionry序列化成json

2023-08-21 19:42 作者:核子nucleon  | 我要投稿

在开始讲解这一章节前,我们需要了解,什么是 Json.

Json

他的全称是 JavaScript Object Notation 【JavaScript 对象表示法】

JSON 是存储和交换文本信息的语法。类似 XML。json是基于ECMAScript语法,但这并不意味着 json 必须在 js 中使用,或者必须要产生什么联系, json 在 js 中的处理也并没有比其他语言占有更多优势。只是因为语法相似,而使得js开发者能更快的上手 json 而已。

JSON采用完全独立于任何程序语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括 C、C++、C#、Java、JavaScript、Perl、Python 等)。这些特性使 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

典型的 Json 数据

Json 语法规则

  • 数据在 键值对 中

  • 数据由逗号 , 分隔

  • 使用斜杆 \ 来转义字符

  • 大括号 {} 保存对象

  • 中括号 [] 保存数组,数组可以包含多个对象

json 的值

  • 数字(整数或浮点数)

  • 字符串(在双引号中)

  • 逻辑值(true 或 false)

  • 数组(在中括号中)

  • 对象(在大括号中)

  • null

JsonUtility

JsonUtility 是 Unity 提供的一个工具类,用于序列化和反序列化 Json 数据。

使用方法

注意事项

  • 仅支持 MonoBehaviour / ScriptableObject 继承类的序列化

  • 仅支持 [Serializable] 的普通类与结构体

  • 仅序列化 public 或 [SerializeField] 标签的字段

  • 在内部,此方法使用 Unity 序列化器;因此传入的对象必须受序列化器支持:它必须是 MonoBehaviour、ScriptableObject 或应用了 Serializable 属性的普通类/结构。要包含的字段的类型必须受序列化器支持;不受支持的字段以及私有字段、静态字段和应用了 NonSerialized 属性的字段会被忽略。

  • 支持 List、Array 数据类型,但不支持 Dictionary、Query、Stack 等集合

  • 支持 Enum 枚举,但默认存储值为数值类型

字典的序列化和反序列化


本文作于2023-08-21,首发于个人博客https://rdququ.top/

Unity集换式卡牌游戏_Dictionry序列化成json的评论 (共 条)

分享到微博请遵守国家法律