请问cocos creator 如何对json文件进行数据读取

在论坛唯一找到一点相关的内容却报错!!一脸懵逼

var url = cc.url.raw( ‘resources/data.json’ )
cc.loader.load( url, function( err, res)
{
// 如果有異常會在 err 變數顯示, 否則在res就會是讀進來的json object
cc.log( ‘load[’+ url +’], err[’+err+’] result: ’ + JSON.stringify(res));
});

错误:Error: Download text failed

1赞

list就是你要加载的json转换成的js对象了

你编辑器版本是多少的?我这没有这个问题,我的版本是 1.3.2

我的是1.3.1!
我用以下方法就报错res为null,报text_download.js的错,但是把json文件放到resources外可以读取到数据,单提示必须把json放到resources文件下。
var url = cc.url.raw( ‘resources/data.json’ )
cc.loader.load( url, function( err, res){}

那你用我楼上的做法,试看看

‘json/passiceSkill’,是Json文件的路径吗?不是要放在resources文件下吗?

他的这个就是你的 data.json 只不过用了 loadRes 不需要加 resources

是这样写吗: cc.loader.loadRes(‘data.json’, function(err,res){});但是提示我data.json不存在!!

难道是版本问题?

截图看一下你 data.json 放的位置

json放在resources下,用load()方法报download text failed错;用loadRes()放提示json文件不存在

你用Windows资源管理器看一下E:/Cocos2d/Projects/ColorLine/assets/resources/data.json是否存在。
查了下这个报错,居然是在releaseRes里的?你新建个空白项目,只加载data.json,看看有没有问题。

我把两种方法的代码贴出来帮忙看一下是不是哪里有问题:
cc.loader.load(cc.url.raw(‘resources/data.json’),function(err,res)
{

        // 如果有異常會在 err 變數顯示, 否則在res就會是讀進來的json object
        cc.log( 'load['+ url +'], err['+err+'] result: ' + JSON.stringify(res));
    });

cc.loader.loadRes(‘resources/data’, function(err,res){
if (err) {
cc.log(err);
}else{
let list=res;
cc.log(“list:”+list);
}
});

把data.json放resources外面也一样

data.json 肯定存在,况且我查找报错提示位置就是在loadRes()方法里的

我新建个空白文件放到resources文件下,可以读取了!那为什么在原来项目不能?一脸懵逼!

嗯嗯,是我看漏了,loadRes里也有这个报错。
那你只能检查一下你的代码有没有做什么了。我遇到这样的问题如果自己代码里查不出问题,会去模拟器目录src\jsb_polyfill.js一路打cc.log。比如你这个报错是在loadRes的callInNextTick里的,当uuid不存在时才会执行。就去_getResUuid: function(url, type)里打一点log,找不到错误就一路往上。。。

我刚查看了下E:/Cocos2d/Projects/ColorLine/assets下突然发现有两个同名的resources文件,之前没有的。我把其中一个删除后在编辑其里资源管理器目录下resources没了,但是在路径下还存在一个,里面也有我的Json文件。这是什么原因?

…为啥会出现 2 个同名的 resources 文件,层级一样吗? :innocent:

我也搞不懂,在这个resources文件下不能新建文件,删除时提示此文件夹不存在 另外,当我另外新建一个resources并新建一个Json文件后,它里面也有json文件,