当前位置:   article > 正文

Unity学习笔记之JSON与MVC思想_unity jsonmapper

unity jsonmapper

JSON

全名:JavaScript Object Notation

功能:JavaScript对象标记语言,是一种跨平台,跨语言,轻量级的数据交换和存储格式。

JSON在游戏中的使用场景:

  •                    存储在服务器中的数据
  •                    存储在策划配置的Excel中的数据(Excel -> JSON)

JSON最简单的格式:

        {“Username” : “admin”, “Password” : “123”}

对应C#中格式:

        

支持的数据结构:

  •                    数字型:short,int,long,float,double
  •                    字符串:”abc”,”你好”,’abc’
  •                    布尔:true,false
  •                    null:null
  •                    数组(列表):[值1, 值2]
  •                    对象(字典):{“键1” : “值1”, “键2” : “值2”}

字符含义:

  •                    大括号组:对象,字典
  •                    中括号组:数组,列表
  •                    冒号:赋值,左侧是变量或键名称,右侧为值
  •                    逗号:元素分割符,最后一个元素后,没有逗号
  •                    双引号组:修饰变量(可以不加),表示string数据类型
  •                    单引号组:同双引号组

将Excel中的数据导出为JSON:

  •         填写Excel数据;
  •         将Excel数据,导出另存为CSV格式        ;                   
  •         
  •         通过文本编辑器,打开CSV内部内容,复制;
  •         将数据贴到转换工具(比如http://www.bejson.com
  •         
  •         分隔符表示,列间的分隔符,CSV列通过逗号分割,所以填写逗号;
  •         值全部使用字符串,不选,否则会影响C#数据类型;
  •         转换方式,按行转换为对象(单元格数据和表头的列名产生赋值);

C#中使用JSON数据

        数据存储(序列化):将C#的数据格式,转化为JSON字符串,存储或传输

        数据使用(反序列化):将JSON字符串中存储的数据,转化为C#可用的数据格式,实现代码逻辑

        序列化(程序数据 -> JSON字符串)

        反序列化(JSON字符串 -> 程序数据

TextAsset

        用于读取Resources下Json/test文件的内容

        

        支持的文件扩展名:

        

 Unity的JSON工具

        类名:JsonUtility

        序列化:ToJson()

         

         反序列化:FromJson()

         

        

        

         注意:如果使用Unity的内置解析类,JSON最外层结构必须是对象结构;

        当一个类需要存储在另外一个成员变量中时,需要给类声明加特性

         [System.Serializable]

        

 LitJson 工具

 官网:LitJSON - Home

 

 导入src文件夹中的C#文件

  •         删除C#以外的文件
  •         导入后Unity编辑器中会报警告,点击进入后删除导致Warning的特性(中括号)代码

 序列化

        JsonMapper.ToJson()

反序列化

  •         获得JsonData(类似C#的object):JsonMapper.ToObject()
  •         获得指定类型:JsonMapper.ToObject<T>()

注意

  •         反序列化不要求最外层是对象
  •         对象内部存储对象不需要[System.Serializable]修饰Class声明

XML 存储格式

全名:Extensible Markup Language

可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言

支持数据类型:数字、字符串、布尔、数组(链表)、对象、null

格式示例

  •         <?xml version="1.0" encoding="UTF-8" ?>
  •         <Root>
  •             <Username v=”123”>root</Username>
  •             <Password>123</Password>
  •         </Root>
    •         
      •         {"Username" : "root", "Password" : "123"} (对应的JSON格式)

XML规则

  •         所有XML元素都须有关闭标签
  •         XML标签对大小写敏感
  •         XML必须正确地嵌套

特殊字符

  •         "<" => "&lt;"
  •         ">" => "&gt;"
  •         "&" => "&amp;"
  •         "'" => "&apos;"
  •         """ => "&quot;"

JSON和XML对比:

  •     JSON比XML可读性高
  •     同样具有很强的扩展性
  •     XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。
  •     JSON相对于XML来讲,数据的体积小,传递和解析的速度更快。
  •     JSON不使用保留字
  •     XML必须存在一个父节点

MVC 分层开发思想

(旧的)代码实现方法

        一个功能模块的代码逻辑(显示处理,数据处理,逻辑判定)都写在一起(耦合)

(新的)代码MVC分层实现方法

  •         显示部分实现(View视图)
  •         数据处理实现(Model数据模型)
  •         逻辑判定实现(Controller控制器)

 

MVC是什么:

  •         C:控制器,负责流程控制和事件响应
  •         V:视图,负责图形交互
  •         M:数据模型,负责数据处理

MVC的开发步骤:

        1、页面预制体制作

        2、处理数据(数据模型脚本

                JSON读写操作

                数据的CURD操作

                        C:Create增加数据

                        U:Update修改数据

                        R:Read读取数据

                        D:Delete删除数据

                根据控制器调用模型的方式数量,在模型中编写对应数量的函数,以供调用

        3、显示(视图脚本

                文本的显示

                图片的显示

                列表的显示

                其他美术资源(模型,动作,特效)

        4、逻辑控制(控制器脚本

                生命周期函数

                逻辑控制语句

                事件响应

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/794100
推荐阅读
相关标签
  

闽ICP备14008679号