我认为这很简单:
project.importJSON('structures.json')
不幸的是,这给了我:
JSON Parse error: Unexpected identifier "structures"
此"structures"
必须来自JSON文件structures.json
本身,如下所示:
{
"structures": [
{"name":"shed", "width": 4, "height": 3, "depth": 5},
{"name": "house", "width": 6, "height": 7, "depth": 5},
{"name": "factory", "width": 4, "height": 3.5, "depth": 6.5,
"depth_sub_1": 5.5,
"depth_sub_2": 4.5 }
]
}
有关如何使这项工作的任何想法?我不想为此使用jQuery。
修改
所以在我看来,使用importJSON只能在JSON是实际的Paper对象时才能工作。同样的错误继续发生。
替代方案是什么?我想我的外部'结构'数据在基本一个JavaScript文件中。我应该使用常规路线吗?
我的HTML看起来像这样:
<head>
<script type="text/javascript" src="../../assets/javascript/paper-full.js"></script>
<script type="text/paperscript" src="I/a_view_on_my_structures.js" canvas="phase-I"></script>
</head>
<body>
<canvas id="phase-I" resize="true"></canvas>
</body>
&#13;
答案 0 :(得分:0)
您应该对数据进行字符串化。
var structures = {
"structures": [
{"name":"shed", "width": 4, "height": 3, "depth": 5},
{"name": "house", "width": 6, "height": 7, "depth": 5},
{"name": "factory", "width": 4, "height": 3.5, "depth": 6.5,
"depth_sub_1": 5.5,
"depth_sub_2": 4.5 }
]
}
project.importJSON(JSON.stringify(structures))
如果您的json数据位于不同的文件中,则应首先读取该文件
这是您阅读文件的方式
<强>同步强>
var client = new XMLHttpRequest();
client.open('GET', 'path/to/your/file', false);
client.onreadystatechange = function() {
//your data is in client.responseText
console.log(client.responseText);
}
client.send(null);
<强>异步强>
var client = new XMLHttpRequest();
client.open('GET', 'path/to/your/file');
client.onreadystatechange = function() {
//your data is in client.responseText
console.log(client.responseText);
}
client.send();
请注意,当您执行此操作时,您不需要对数据进行字符串化,因为您将其作为文本阅读,因此您只需将client.responseText
内容传递给importJSON
功能