在网络通信过程中需要传输数据,常用的数据格式有两种:JSON、XML。Cocos2d-x对JSON和XML这两种数据格式的解析提供了支持,主要为:JOSN数据解析、XML数据解析。
在网络通信过程中需要传输数据,常用的数据格式有两种:JSON、XML。Cocos2d-x 对 JSON 和 XML 这两种数据格式的解析提供了支持,主要为:JOSN 数据解析、XML 数据解析。JOSN 数据解析的过程为:首先创建 JSON 文件,然后在类中包含 document.h 和 cocos-ext.h 头文件,接着通过 FileUtils 获得 JSON 文件路径,并通过 Document 对象解析 JSON 数据,最终获得不同类型的数据值。XML 数据解析的过程为:首先创建 XML 文件,接着在类中包含头文件并使用命名文件,然后获得 XML 文件全路径,并加载 XML 文件,最后获得元素并解析。
基本情况
Cocos2d-x 可以开发游戏,它提供了多种网络连接方式,即时通信 Socket、WebSocket、基于 http 的 HttpCline、curl 等等。在网络通信过程中,需要传输数据,常用的数据格式有两种,一种是 JSON,另外一种是 XML,Cocos2d-x 对这些数据格式的解析提供了支持,主要为:JOSN 数据解析、XML 数据解析。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它使得人们可以很容易地进行阅读和编写,同时也方便了机器进行解析和生成。JSON 采用完全独立于程序语言的文本格式,但是也使用了类 C 语言的习惯(包括 C、C++、C#、Java、JavaScript、Perl 和 Python 等),这些特性使得 JSON 成为理想的数据交换语言。
TinyXML 是一个开源的解析 XML 的解析库,Cocos2d-x 集成了该库,在 Cocos2d-x 项目的根目录的 extemal/tinyxml2 目录下面有该类的实现。TinyXML 解析库通过解析 XML 文件,在内存中生成 DOM 模型,从而使我们可以很方便地遍历这棵 XML 树。
JSON 数据解析
在 Cocos2d.x 根目录的 external/json 目录下面,是 JSON 处理的相关类,这里主要使用 document.h 这个头文件,该文件中的两个核心类是 GenericValue 和 GenericDocument,GenericDocument 继承 GeneficValue。使用 GenericDocument 用来处理文档内容,如解析文档内容;而 GenericValue 主要处理值内容,即文档内部的 key-value 键值对内容,可以根据 key 获得 value。GenericValue 和 GenericDocument 都被重新进行了类型定义。所以可以使用类型定义后的名称。