2015-09-17 56 views
0

我正在開發一個從外部JSON文件中讀取數據的d3.js應用程序。我覺得我已經嘗試了所有的東西,但是每次我嘗試加載數據並將其顯示在console.log中時,console.log將數據顯示爲undefined。我在Firefox上運行一個python -m SimpleHTTPServer的Python網絡服務器,以避免跨源資源共享問題,但是我實際上並沒有將數據傳送到瀏覽器。我的代碼:從d3.js中的外部文件中未定義JSON數據?

<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" 
} 
+1

查看webinspector選項卡中的請求(F12> Network)。 – Halcyon

+0

@Halcyon它加載'course.json'文件與200 – user2740614

+0

@Halcyon'語法錯誤:JSON.parse:在JSON數據的第6行JSON數據JSON數據後的意外的非空白字符我看過JSON文件,並找不到空白字符在第6行。我使用Python生成JSON,所以問題必須在那裏我猜? – user2740614

回答

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是空白敏感所以在}之後,您可以根據需要獲得儘可能多的空白,而不是另一個{或任何其他非空白字符。

相關問題