2013-01-07 84 views
0

嘿傢伙我想了解如何使用JSON文件。我瞭解基礎知識,但我試圖把它們加載到一個HTML文件中,我遇到了一些困難。JQuery .getJson不會加載本地文件以及如何轉換爲JavaScript對象。

我遇到的第一個困難是,如果我放入完整的文件擴展名來加載文件,我會得到一個錯誤「期望的十六進制數字」。我做了一些研究,我認爲這是因爲在文件擴展名中它是\ u因此它期望一個十六進制,但我不知道如何解決它。

我遇到的第二個問題是,如果我只是使用文件擴展名users.json,它在我的編輯器中工作,但不在瀏覽器中。它根本不加載文件,代碼很好(我相信)。我認爲它只是不加載文件,因爲文件擴展名。

關於如何解決我的問題的建議?提前致謝。

<body> 
for output 
<div id="forOutput"></div> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script> 
var output; 
$(document).ready(function(){ 
    alert("JQuery loaded"); 
}); 
$.getJSON('C:\Users\Spencer\Desktop\JSJqueryTesting\JSONTesting\users.json', function(data) { 
    output = data; 
for (var i in data.users) { 
alert(data.users[i].firstName + " " + data.users[i].lastName+ " " + data.users[i].joined.month); 
    } 
}); 
$("#forOutput").html("User 1 lastname: " + output.users[1].lastName); 
</script> 
+2

我相信'$ .getJSON'需要一個網頁URL,而不是一個本地文件路徑。 – jbabey

+0

你真的應該在網絡服務器上做這種東西,而不是在本地文件系統上。它會工作,但你必須做一些安全設置更改才能在某些瀏覽器上工作。 –

+0

好吧,我知道你只能輸入一個URL,我明白爲什麼現在。雖然如果我把兩個文件放在我的網絡服務器上,它仍然不會加載文件。我想我會繼續努力。 謝謝 – recneps

回答

0

文件擴展名是完美的(.json),但是,由於安全原因,您無法加載本地文件。如果您正在嘗試做的事情是可能的,那就意味着任何網站都可以訪問您的本地文件的全部。現在確實不是一個好主意,因此(默認情況下)只允許共享相同域的文件(例如stackoverflow.com/*)。這被稱爲Same Origin Policy

相關問題