我在微信小程序中尝试读取项目中的 JSON 文件,代码如下:

      const path = "assets/animations/main_ani.json";
      const fs = wx.getFileSystemManager();
      try {
        // 读取本地 JSON 文件
        const fileContent = fs.readFileSync(path, "utf-8");
        let animData;
        try {
          animData = JSON.parse(fileContent);
          console.log(animData);
        } catch (e) {
          console.error("JSON 解析失败", e);
        }
      } catch (err) {
        console.error("读取文件失败", err);
      }

这段代码在 微信开发者工具模拟器 中可以正常运行,但在 真机远程调试 时出现如下错误:

index.ts:69 读取文件失败 Error: readFileSync:fail no such file "assets/animations/main_ani.json"
    at W_ (WAServiceMainContext.js:1)
    at Object.<anonymous> (WAServiceMainContext.js:1)
    at I (WAServiceMainContext.js:1)
    at Object.p (WAServiceMainContext.js:1)
    at li.onTest (index.ts:60)
    at o.safeCallback (WASubContext.js:1)
    at WASubContext.js:1
    at wn (WASubContext.js:1)
    at WASubContext.js:1
    at pe (WASubContext.js:1)

尝试将 path 改为 "/assets/animations/main_ani.json" 之后,问题依旧。

疑问: 小程序的 JSON 文件应该如何正确读取?

开发者工具和真机调试的文件路径是否有差异?

是否需要特殊配置,或使用其他方式加载 JSON 文件?

希望有经验的朋友能帮忙解答,感谢!

举报· 209 次点击
登录 注册 站外分享
1 条回复  
qhd1988 小成 7 天前
考虑改成 js 文件,export 出来吧 https://i.imgur.com/MAyk5GN.png
返回顶部