【问题标题】:Three.js SceneExporter getting Uncaught Syntax errorThree.js SceneExporter 获取未捕获的语法错误
【发布时间】:2014-10-19 03:30:45
【问题描述】:

所以我正在尝试使用 SceneExporter 导出一个 three.js 场景,我只是这样做

var output = new THREE.SceneExporter().parse(scope.renderingEngine.scene);

执行此操作时出现错误

Uncaught SyntaxError: Unexpected token u

这发生在 SceneExporter.js 的第 750 行(这是解析 JSON 的行;new THREE.SceneExporter().parse(scope.renderingEngine.scene);

我在场景中没有任何花哨的东西,只是一堆几何图形。我什至尝试了一个没有纹理的场景,但仍然出现此错误。

现在,如果我将该行更改为仅返回 output 然后返回 JSON.stringify(output) 并保存此文件,则文件的 JSON 不会验证。我收到以下错误

Parse error on line 1:
"{    \n\t\"metadat
^
Expecting '{', '['

这是 JSON 文件的第 1-10 行

"{
    \n\t\"metadata\": {
        \n\t\t\"formatVersion\": 3.2,
        \n\t\t\"type\"\t\t: \"scene\",
        \n\t\t\"generatedBy\"\t: \"SceneExporter\",
        \n\t\t\"objects\": 153,
        \n\t\t\"geometries\": 144,
        \n\t\t\"materials\": 5,
        \n\t\t\"textures\": 1\n\t
    },
    \n\n\t\"urlBaseType\": \"relativeToScene\",

还有其他人有这个问题吗?

【问题讨论】:

  • 我已经成功使用 ObjectExporter 导出,也许现在最好使用它

标签: javascript json three.js


【解决方案1】:

语法错误是“Unexpected token: ILLEGAL”字符,可能是由于您在字符串之外使用“\n\t\t”和其他(转义序列)而引发的。我不知道你想用字符串外的转义序列来实现什么,我什至不知道是否应该在 JSON 中使用特殊字符。

另外,我在您的某些字符串中看到“\”。您不能使用“\”。但是,您可以使用“\”,即“\”的转义序列。在字符串中使用单个“\”会给您“意外令牌:非法”错误。 "\" 后面必须始终跟一个构成有效转义序列的字符。

【讨论】:

  • 对,嗯,我将把它作为一个问题发布到 three.js github repo 中,因为这似乎是 SceneExporter 构造其 JSON 输出的方式中的一个错误。我也会在仔细研究后接受您的回答,谢谢!
  • 嘿@RohanDeshpande 我遇到了同样的问题,想知道你是否找到了解决方案。
  • 嗯,我停止使用SceneExporter,我认为它无论如何都会被弃用。请改用ObjectExporter
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-03
  • 2016-10-18
  • 2020-07-02
  • 2019-12-12
  • 1970-01-01
相关资源
最近更新 更多