[]发布微信小游戏json格式问题

WAGame.js:3 gameThirdScriptError
Unexpected token in JSON at position 27;at api readFile success callback function
SyntaxError: Unexpected token in JSON at position 27
    at JSON.parse (<anonymous>)
    at Function.MiniAdpter.getJson (http://127.0.0.1:9973/game/code.js:20980:15)
    at Function.MiniLoader.onReadNativeCallBack (http://127.0.0.1:9973/game/code.js:21386:25)
    at Handler.__proto.runWith (http://127.0.0.1:9973/game/code.js:712:41)
    at Function.success (http://127.0.0.1:9973/game/code.js:21580:33)
    at Object.success (http://127.0.0.1:9973/game/__d ... :18788)
    at c (http://127.0.0.1:9973/game/__dev__/WAGame.js:4:3519)
    at Function.<anonymous> (http://127.0.0.1:9973/game/__dev__/WAGame.js:4:3702)
    at n.function.setTimeout (http://127.0.0.1:9973/game/gamePage.html:1:8644)
    at http://127.0.0.1:9973/game/__dev__/WAGame.js:3:18788
 
在layaIDE里能正常运行,发布为微信小游戏后如上报错,json格式需要注意!!!
已邀请:

Aar0n

赞同来自:

由于小游戏里读本地资源会校验编码,而项目里绝大多数非图片文件的编码为ASCII,所以引擎调用本地接口读取文件时,默认传参会告诉小游戏编码格式为ASCII码,当本地初始包的文件(比如json文件)的编码格式不是ASCII,那就会报错。所以,开发者需要去检查文件的编码,然后通过“MiniAdpter['getUrlEncode']”告诉小游戏该文件真正的编码是什么,这样小游戏按照正确的编码去校验就不会出错了。
//告诉小游戏你的文件编码是什么
MiniAdpter['getUrlEncode'] = getUrlAndEncode;//假如getUrlAndEncode是开发者识别文件编码的方法


开发者识别文件编码的方法示例(AS3版):
//该方法示例仅做参考,视项目情况自行修改或拓展
public static var getUrlAndEncode:Function = function(url:String,type:String):String
{
if (url.indexOf(".fnt") != -1 || url.indexOf("xxx.json") != -1)
{
return "utf8";
} else if (type == "arraybuffer")
{
return "";
}
return "ascii";
}

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作