2014-09-21 52 views
-3

但願這不是一個重複的問題,但我沒能找到滿意的答案。如何加載本地JSON文件到Java的腳本,而不jQuery的

我需要找到一種方法來導入從本地文件系統中的javascipt的JSON文件,而無需使用任何jQuery的庫或服務器端功能。

我創建其中我出口幾個對象爲JSONs電源shell腳本。然後我想要把這個對象導入到帶有javasscript的本地htm報表中。這意味着它將在本地運行和讀取,根本沒有任何服務器端組件。我也不能使用JQuery或任何其他外部腳本,因爲我想這一切是自包含的,寫在我的PowerShell腳本的執行...

我已經試過這樣:

function loadJSON(path, success, error) 
{ 
    var xhr = new XMLHttpRequest(); 
    xhr.onreadystatechange = function() 
    { 
     if (xhr.readyState === 4) { 
      if (xhr.status === 200) { 
       if (success) 
        success(JSON.parse(xhr.responseText)); 
      } else { 
       if (error) 
        error(xhr); 
      } 
     } 
    }; 
    xhr.open("GET", path, true); 
    xhr.send(); 
} 

loadJSON('./test.js', 
     function(data) { console.log(data); }, 
     function(xhr) { console.error(xhr); } 
); 

但,當然這會失敗並顯示錯誤,指出XMLHttpRequest只能用作服務器http請求,而不能用作本地文件請求。

感謝您可以提供任何幫助。

+0

AJAX只能從服務器工作。 – Scimonster 2014-09-21 18:36:45

+0

正確,這就是我問這個問題的原因。 :) – Ethan 2014-09-21 18:38:07

+0

你需要從服務器運行它,沒有辦法繞過它。 – Scimonster 2014-09-21 18:46:47

回答

1

你爲什麼不只是使用簡單的JavaScript文件處理逐行讀取文件中的行,然後使用JSON解析器解析它作爲JSON ..否則你的代碼,我可以看到你的JSON實際上並沒有存儲在以.json文件,而其存儲在一個.js文件,所以如果test.js它像

示例代碼

var a = [ 
{ 
... 
}, 
{ 
... 
} 
]; 

然後,你可以把它作爲一個簡單的js文件就像你有任何其他的js文件,然後直接使用'a'var。

+0

完美,就像一個魅力。 :) 謝謝!!! – Ethan 2014-09-21 18:54:51