2012-09-28 24 views
1

我正在使用AngularJS的'http()方法加載位於我電腦上的JSON文件。該文件的內容是:無法加載位於我的電腦上的JSON文件

{ 
    "topics": [ 
    { 
     "canonical": "Nebraska Football", 
     "alias": "NEB", 
     "score": 45, 
    }, 
    { 
     "canonical": "Ohio State Football", 
     "alias": "OSU", 
     "score": 10, 
    } 
    ] 
} 

當我加載文件(名爲example.json),我在使用Firefox和Safari瀏覽器,上面寫着Error: JSON.parse: expected double-quoted property name得到一條錯誤消息。在Chrome中(正如預期的感謝其默認安全性),它只是普通的不起作用。

JSON最初在Firefox中加載正常,但在瀏覽器更新後,它停止工作。

我打電話的JSON這樣的:

$http.get("json/example.json").success(function(data) { 
    console.log(data); 
}); 

我試着使用Python的SimpleHTTPServer運行該網站爲好,並沒有發揮作用。如果任何人有任何猜測這裏有什麼問題,我會非常感謝幫助。謝謝!

+0

您可以使用命令行「--allow-file-access-from-files」啓動Chrome新鮮版(意思是沒有它已經打開,或者任何chrome.exe進程在運行),它將允許本地文件加載 – TheZ

回答

3

無效的Json 嘗試

{ 
    "topics": [ 
    { 
     "canonical": "Nebraska Football", 
     "alias": "NEB", 
     "score": 45 
    }, 
    { 
     "canonical": "Ohio State Football", 
     "alias": "OSU", 
     "score": 10 
    } 
] 
} 
+1

我恨自己在最後一個小時追趕這個錯誤。謝謝! – breezy

1

如果通過jsonlint.com它指向了錯誤},{運行JSON。如果你從那裏往上看,你會看到不應該在那裏的,。你的JSON大概應該是:

{ 
    "topics": [ 
    { 
     "canonical": "Nebraska Football", 
     "alias": "NEB", 
     "score": 45 
    }, 
    { 
     "canonical": "Ohio State Football", 
     "alias": "OSU", 
     "score": 10 
    } 
    ] 
} 
0

修改後的代碼:消除「」從最後一個項目可以解決你的問題

{ 
    "topics": [ 
    { 
     "canonical": "Nebraska Football", 
     "alias": "NEB", 
     "score": 45 
    }, 
    { 
     "canonical": "Ohio State Football", 
     "alias": "OSU", 
     "score": 10 
    } 
    ] 
} 
0

你的問題是,你在你的JSON有額外,秒。修改它如下:

{ 
    "topics": [ 
    { 
     "canonical": "Nebraska Football", 
     "alias": "NEB", 
     "score": 45 
    }, 
    { 
     "canonical": "Ohio State Football", 
     "alias": "OSU", 
     "score": 10 
    } 
    ] 
} 
0

JSON Lint是一個驗證您的JSON的好地方。這是說你應該在每個數組元素的最終值之後刪除逗號,。因此,"score":45,應該是"score":45

相關問題