JSON - Blender & ThreeJS - JSON 中的意外标记 < 位置 0
Posted
技术标签:
【中文标题】JSON - Blender & ThreeJS - JSON 中的意外标记 < 位置 0【英文标题】:JSON - Blender & ThreeJS - Unexpected token < in JSON at position 0 【发布时间】:2018-08-29 20:20:12 【问题描述】:我使用 io_three 插件从 Blender 导出了一个 3D 模型。
现在我正在尝试使用这样的代码将此模型加载到 ThreeJS 中。
import React, Component from 'react';
import * as THREE from 'three';
var loader = new THREE.JSONLoader();
loader.load('./making_a_face10.json', handle_load);
我一直收到相同的错误消息。
Unexpected token < in JSON at position 0
我尝试过使用 THREE.ObjectLoader() 和这个选项 https://github.com/tweedegolf/parsed-model,但它一直在 JSON 的位置 0 出现错误。
附带说明一下,我可以像这样访问 JSON:
var JSONdata = require('./making_a_face10.json');
这确实暴露了 JSON 中的数据,但我希望 ThreeJS 加载器能够工作。
然后我找到了这个示例https://threejs.org/examples/#webgl_loader_json_blender,当我查看源代码时,它显示“模型”正在作为 .js 文件导入??,即他们正在像这样加载它:
loader.load( 'models/animated/monster/monster.js', function ( geometry, materials )...
有足够的材料来解释我想要做什么,但没有一个指向将模型加载为 .js 文件。
还有两个注意事项 - 我的 JSON 文件的格式看起来非常像 https://github.com/mrdoob/three.js/blob/master/examples/models/animated/monster/monster.js,我正在使用 npm start
运行本地服务器
如果有哪位高手能帮助我,我将不胜感激。
已解决
在 React 项目文件夹中。 .JSON 文件位于我的 /src
文件夹中。它应该在我的/public
文件夹中。
【问题讨论】:
该错误让我认为您的导入无法正常工作。你在使用 webpack 吗?您可能需要添加一个 json-loader 才能使其正常工作。 查看这个在 Webpack 中加载静态 JSON 文件的示例。您应该尝试将其作为变量导入:***.com/questions/43735486/… 这个错误表明你没有得到你认为你得到的文件——它告诉你文件的初始字符是<
。当我尝试从 API 加载某些内容时,我通常会看到此错误,并且收到 404 或 500 错误,而不是我期望的数据。我知道你正在加载一个本地文件,所以它可能不是 html 响应,但是......也许这对你来说是一个线索?
天啊,伙计。我只是做了完全相同的事情。 Webpack 让我们认为一切都是捆绑的。
【参考方案1】:
正如 Kryten 在 cmets 中提到的那样。您的负载失败了。 JSON 文件中的第一个字符不是“
三个加载器在内部使用 XMLHTTPRequest...您可以尝试使用 XMLHTTPRequest 直接加载您的 JSON,然后记录输出以查看错误是什么..
【讨论】:
以上是关于JSON - Blender & ThreeJS - JSON 中的意外标记 < 位置 0的主要内容,如果未能解决你的问题,请参考以下文章