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/… 这个错误表明你没有得到你认为你得到的文件——它告诉你文件的初始字符是&lt;。当我尝试从 API 加载某些内容时,我通常会看到此错误,并且收到 404 或 500 错误,而不是我期望的数据。我知道你正在加载一个本地文件,所以它可能不是 html 响应,但是......也许这对你来说是一个线索? 天啊,伙计。我只是做了完全相同的事情。 Webpack 让我们认为一切都是捆绑的。 【参考方案1】:

正如 Kryten 在 cmets 中提到的那样。您的负载失败了。 JSON 文件中的第一个字符不是“

三个加载器在内部使用 XMLHTTPRequest...您可以尝试使用 XMLHTTPRequest 直接加载您的 JSON,然后记录输出以查看错误是什么..

【讨论】:

以上是关于JSON - Blender & ThreeJS - JSON 中的意外标记 < 位置 0的主要内容,如果未能解决你的问题,请参考以下文章

Blender 2.6 JSON导出器,纹理坐标麻烦

如何将 json 文件导入 Blender?

用于 webGL 的 Blender 到 json

Blender 导出到 JSON 以获取 THREE.js 缺少的材料

Blender学习

无法使用 THREE.js 导入 Blender 2.79 JSON