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

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’ ,你认为路径会在哪里?你打印一下

我的工程目录结构里是如下这样的,有这个文件

assets/resources/inituser.json

这样做对吗,另外打印什么内容?

给你文档连接了 你至少应该看一下文档的说明吧 writeStringToFile有明确的说明了 第二个参数 是路径,你至少得先明白每个参数的用法吧

不好意思,刚学不久,文档实在看不懂

路径的话写这样可以吗?assets/resources/inituser.json

还是这样 resources/inituser.json

jsb.fileUtils.writeStringToFile(’{“level”:5,“guntype”:3,“hp”: 100,“maxhp”: 120}’,
‘resources/inituser.json’)
这俩个参数都需要加‘’号吗

先写到C盘根目录下试试

mac电脑,没C盘,另外使用writeStringToFile这个方法需要import 什么包吗?还是直接使用就可以

写在工程assets/resources/这里可以吗?