如何在CocosCreator开发中读取和解析JSON数据文件以及如何写JSON文件

如何在CocosCreator开发中读取和解析JSON数据文件以及如何写JSON文件

在游戏开发过程中,读取配置文件是必不可少的,使用JSON作为配置文件是很常见的。本文重点介绍在 Cocos Creator 开发中如何读取和解析 JSON 数据文件以及如何编写 JSON 文件。

一、JSON简介

1.什么是JSON

JSON的英文全称是JavaScript Object Notation,即JavaScript Object Notation。

二、JSON的特点

它是一种轻量级文本数据交换格式,类似于 XML游戏动态,但比 XML 更小、更快且更易于解析。

cocos xml 读取节点_c#读取xml节点值_cocos xml 读取节点

使用 JavaScript 语法来描述数据对象,JS 程序可以在没有解析器的情况下生成原生的 JavaScript 对象。

语言和平台无关,当今大多数编程语言都支持 JSON。

3.JSON语法

JSON 语法是 JavaScript 语法的一个子集,具有以下规则:

- 数据在名称/值对中

- 以逗号分隔的数据

cocos xml 读取节点_cocos xml 读取节点_c#读取xml节点值

- 大括号持有对象

- 方括号保存数组

2.如何解析JSON文件

一、主要原则

大括号代表对象,方括号代表数组;

4、如何阅读?

cocos xml 读取节点_cocos xml 读取节点_c#读取xml节点值

Cocos Creator 提供了 cc.load.loadRes 来专门加载位于 resources 目录下的文件,所以请提前将 JSON 文件放在 asserts/resources 目录下。

让我们从一个简单的 JSON 文件开始,如下所示:

cocos xml 读取节点_cocos xml 读取节点_c#读取xml节点值

是不是很简单?实际的JSON配置往往比这更复杂3D动画,所以我们现在在JSON文件中添加一些元素,如下:

cocos xml 读取节点_c#读取xml节点值_cocos xml 读取节点

c#读取xml节点值_cocos xml 读取节点_cocos xml 读取节点

cocos xml 读取节点_c#读取xml节点值_cocos xml 读取节点

三、Cocos Creator 读取 JSON 文件注意事项

creator读取json文件的一个坑(可能是操作文本内容导致的错误)

在creator中使用cc.loader.loadRes( url, cc.RawAsset, ( err, res )=>{ } ) 读取游戏文件后,发现第二次进入游戏时出错。

现在总结一下这个问题:

对于动态加载的资源,第二次读取会直接从缓存中读取,所以如果读取了一个文本数据,修改了文本数据,那么对应的,下次读取数据时,会读取修改后的文本。比如文本数据是一个数组[1,2,3],第一次读取后删除最后一位数据变成[1,2],那么下一次读取就是[1,2]。为了避免这种情况,可以对数据进行序列化和反序列化操作,深拷贝后使用。

c#读取xml节点值_cocos xml 读取节点_cocos xml 读取节点

4. 读取JSON常用代码示例

c#读取xml节点值_cocos xml 读取节点_cocos xml 读取节点

注意:当使用上面的代码报文件不存在或者下载文本失败的错误时,再查看资源管理器中是否有两个资源文件夹,其中一个是新建的,另一个可能是之前新建的但是已经删除了cocos xml 读取节点,但是删除的并不彻底,因为cocos creator中的资源都有一个唯一标识的uuid,所以还要找到文件E:\Projects\your project\library\uuid-to-mtime.json ,在里面找到之前的资源文件uuid,先把它剪切成文本文件,然后保存uuid-to-mtime.json,重启软件,看看能不能进入,如果不能cocos xml 读取节点,把剪切下来的uuid复制回来,然后重启而已。

3.编写Json文件

cocos xml 读取节点_cocos xml 读取节点_c#读取xml节点值

cocos xml 读取节点_cocos xml 读取节点_c#读取xml节点值