Cocos Creator 如何使用 JSON 格式的数据

后台给一个JSON格式的数据 怎么在Cocos Creator显示

Label 组件可以显示文本

有没有具体的例子 我做了一个Prefab 里面有Lable 后台给一个JSON文件 我该如何将JSON文件加入到项目

var json; // from xhr
this.getComponent(cc.Label).string = JSON.stringify(json, null, 4);

我看到Cocos Creator 文档里面有一个例子:制作动态生成的列表。这里面的Prefab是手动添加上去的,里面有说到“如果您在制作有很多内容的游戏,请务必使用 excel、数据库等更专业的系统来管理您的数据,将外部数据格式转化为 Cocos Creator 可以使用的 JavaScript 和 JSON 格式都非常容易。” 请问怎么解决?

这些目前官方没有提供现成的案例,需要你们的主程自己根据团队的工作流开发导入工具,将你们的数据转换成类似 json 这样的文件,然后在 Creator 运行时进行解析。

我们已经有JSON数据出来了,怎么在ScrollView里面根据给的JSON数据动态地添加prefab的个数

实例化 prefab 可使用 cc.instantiate 这个 API

var json; // from xhr
this.getComponent(cc.Label).string = JSON.stringify(json, null, 4);

这个后面的stringify(json, null, 4) 是怎么用的 ,里面的3个变量是什么

请参考 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

1:xhr.setRequestHeader(“Content-type”, “application/json”);
2:xhr.send(JSON.stringify({“Id”:10026,“msg”:“123”,“sign”:“d23e991124a89e0bbc7574a33272daa2”});
json格式数据你是怎么传服务器,我我这个数据怎么传不过去啊,把application/json改成multipart/form-data或者其他都能传过去,

怎么修改json数据呢,我想把玩家等级传到本地json文档里,怎么能传呢!有简单示例吗!或者用其他方式怎么实现存储玩家信息到本地(单机游戏)

1,cc.sys.localStorage.setItem
2,jsb.fileUtils.writeStringToFile

1赞

使用cc.sys.localStorage.setItem需要导入什么类吗。
另外具体我是这么用的,运行后json并未改写,如下
@property(cc.JsonAsset)
inituserjson: cc.JsonAsset = null!;
userData = {
level: 5,
guntype: 1,
hp: 100,
maxhp: 120
};

cc.sys.localStorage.setItem(“userData”, JSON.stringify(inituserjson));

不知道原因在哪里 inituserjson里的数据并没有改写

1 localStorage.setItem 是写缓存参数里的方式 但不能改写JSON文件
2 writeStringToFile是改写JSON文件的方式 不能写缓存参数
这两个是完全不同的方式 看你怎么用了 你不能混起来用,

1赞

请问writeStringToFile这个方法有官方示例吗,我写成如下样也没起作用
import { _decorator, Component, JsonAsset } from ‘cc’;
jsb.fileUtils.writeStringToFile(’{“level”:5,“guntype”:3,“hp”: 100,“maxhp”: 120}’,
jsb.fileUtils.getWritablePath()+ ‘inituser.json’);
不知道什么原因

https://docs.cocos2d-x.org/api-ref/cplusplus/v4x/dc/d69/classcocos2d_1_1_file_utils.html

这个看不太懂啊,有没有简单示例能看看具体用法

jsb.fileUtils.writeStringToFile(’{“level”:5,“guntype”:3,“hp”: 100,“maxhp”: 120}’,
jsb.fileUtils.getWritablePath()+ ‘inituser.json’);
麻烦您能告诉我下这个是不是写错了

你写的第二个参数 jsb.fileUtils.getWritablePath()+ ‘inituser.json’ ,你认为路径会在哪里?你打印一下