所以我试图使用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\",
其他人有这个问题吗?
答案 0 :(得分:1)
语法错误是一个“意外的令牌:ILLEGAL”字符,可能是由于您使用“\ n \ t \ t”和其他字符串(转义序列)而引发的。我不知道你想用字符串之外的转义序列实现什么,我甚至不知道是否应该在JSON中使用特殊字符。
另外,我在你的一些字符串上看到“\”。你不能使用“\”。但是,您可以使用“\”,即“\”的转义序列。在字符串中使用单个“\”将为您提供“意外令牌:ILLEGAL”错误。 “\”必须始终后跟一个生成有效转义序列的字符。