我正在开发一个从外部JSON文件中读取数据的d3.js应用程序。我觉得我已经尝试了所有的东西,但每当我尝试加载数据并在console.log中显示它时,console.log会将数据显示为undefined
。我在Firefox上运行了一个带有python -m SimpleHTTPServer
的Python Web服务器,以避免跨源资源共享问题,但我实际上没有运气将数据导入浏览器。我的代码:
<html>
<head>
<meta charset='utf-8'>
<title>JSON Data Read</title>
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js" charset="utf-8"></script>
<script>
var dataset;
d3.json('course.json', function(error, json) {
dataset = json;
console.log(dataset);
});
</script>
</body>
</html>
有什么建议吗?
编辑:JSON文件
{
"course_id": "Course 1",
"prereqs": null,
"off_w": null,
"name": "Course 1 Title"
}{
"course_id": "Course 2",
"prereqs": null,
"off_w": null,
"name": "Course 2 Title"
}{
"course_id": "Course 3",
"prereqs": null,
"off_w": null,
"name": "Course 3 Title"
}
答案 0 :(得分:3)
您的JSON文件无效JSON:
{
"course_id": "Course 1",
"prereqs": null,
"off_w": null,
"name": "Course 1 Title"
}/* <-- JSON block ends here, no further content is expected */{
"course_id": "Course 2",
"prereqs": null,
"off_w": null,
"name": "Course 2 Title"
}{
"course_id": "Course 3",
"prereqs": null,
"off_w": null,
"name": "Course 3 Title"
}
这是有效的:
[ {
"course_id": "Course 1",
"prereqs": null,
"off_w": null,
"name": "Course 1 Title"
}, {
"course_id": "Course 2",
"prereqs": null,
"off_w": null,
"name": "Course 2 Title"
}, {
"course_id": "Course 3",
"prereqs": null,
"off_w": null,
"name": "Course 3 Title"
} ]
在对象之间添加了[
,]
和,
。
错误消息有点神秘。 JSON是 敏感的空格,因此在}
之后,您可以拥有所需的空格,而不是另一个{
或任何其他非空白字符。