2016-06-08 74 views
0

我看幾個例子,一切都過去了,在我看來,這是有效的,但是當我加載JSON作爲一個腳本文件,如:什麼不對這個JSON:

<script src="../js/side-menu.json"></script> 

鉻給我的錯誤:

SyntaxError: Unexpected token : 

這是:"side-menu":結束。這是JSON:

{ 
    "side-menu": { 
    "sections": [ 
     { 
     "dashboard": [ 
      { 
      "title": "Firewall", 
      "url": "dashboard_2.html", 
      "icon": "icon-bulb", 
      "menuVisual": "selected" 
      } 
     ]} 
    ]} 
} 

這可能是因爲瀏覽器正在將該文件解釋爲JavaScript而不是?

+0

你的JSON很好格式化,您可以檢查它在http://json.parser.online.fr/ –

+0

是。使用腳本標籤而不指定lamguage將假定js不是json。 – RecursiveExceptionException

+2

那你對'''有什麼期望呢?它應該做什麼? – zerkms

回答

0

這裏的問題是,您正試圖使用​​默認尋找普通的舊腳本代碼的腳本標記加載純JSON。你有一個選項小號這裏 -

  1. 腳本標籤指定type="application/json",也給它一個id。然後,無論您需要訪問數據的哪個位置,都可以使用其ID找到腳本元素,並執行JSON.parse($("#scriptelementid").html());。如果您不使用它,請用純javascript替換jQuery。

  2. OR,改變你的JSON內容本 -

    var exportedData = { 
        "side-menu": { 
        "sections": [ 
         { 
         "dashboard": [ 
          { 
          "title": "Firewall", 
          "url": "dashboard_2.html", 
          "icon": "icon-bulb", 
          "menuVisual": "selected" 
          } 
         ]} 
        ]} 
    }; 
    
+1

以前的答案意味着選項1不起作用:http://stackoverflow.com/questions/13515141/html-javascript-how-to-access-json-data-loaded-in-a-script-tag-with- src-set – slebetman

+0

當我寫這篇文章的時候沒有答案:)。 – hazardous

+1

我的意思是以前的答案,以前的問題。對不起,關於上面的鏈接。錯誤的鏈接 – slebetman

0

我不知道你正在努力實現這樣做的。

<script src="../js/side-menu.json"></script> 

這會得到你的json並將其解釋爲javascript。

也許你在找什麼。

<script language="javascript">` 
var my_json = { 
    "side-menu": { 
    "sections": [ 
     { 
     "dashboard": [ 
      { 
      "title": "Firewall", 
      "url": "dashboard_2.html", 
      "icon": "icon-bulb", 
      "menuVisual": "selected" 
      } 
     ]} 
    ]} 
}; 
</script> 

裏面的<script>標籤。

1

JS解析器將花括號與代碼塊而不是對象文字混淆。你可以通過把它放在像這樣的括號({...})中來避免這種情況。

如果你這樣做,你的文件將不再是JSON。這個後續問題究竟是如何解決的,取決於你,但是你必須首先考慮一些不同的東西:你期望從包含僅包含JSON的文件中得到什麼?畢竟,如果你這樣做,這個JSON將不會在變量中可用,因爲只有JSON值,沒有賦值給變量。