2014-09-25 1532 views
-1

我一直在嘗試用純Javascript(沒有JQuery)讀取本地JSON文件。我搜索了整個谷歌和Stackoverflow,但似乎沒有任何作品在我的情況。我知道JSON.parse,但是如何在Javascript中首先讀取文件?用Javascript讀取本地JSON到HTML

loadJSON(json){ 
    var savedJSON = JSON.parse(json); 
    alert(savedJSON[0].name); 
} 

主要的想法是有一個服務器的網站生成具有用戶所保存的信息的JSON,現在我將讀取JSON並生成與該信息在Android應用使用HTML,但我在閱讀JSON時掙扎着。任何想法?

+0

你的意思是 '本地' 作爲本地的同一個網站,或 '本地' 作爲你的本地文件系統?請確保您編輯問題以包含您的代碼,並準確描述它的錯誤。 – Clive 2014-09-25 13:21:49

+0

[Loading本地json文件]可能的重複(http://stackoverflow.com/questions/7346563/loading-local-json-file) – user2314737 2014-09-25 13:23:18

+0

我沒有使用JQuery,如我的問題中指定的。 – SidneyReis 2014-09-25 13:35:08

回答

0

正如http://www.w3schools.com/json/json_http.asp建議你可以閱讀本地(在服務器上),文本文件與XMLHttpRequest

此代碼將在HTML表格打印JSON陣列。 目錄文件file.json的:

[[ 50.65, 5.37 , 4358684.11 ], 
[ 50.68, 5.86 , 1849705.79 ], 
[ 50.33, 6.84 , 961107.46 ], 
[ 50.55, 7.32 , 1587473.93 ]] 

HTML/JavaScript的

<script> 
var xmlhttp = new XMLHttpRequest(); 
var url = "file.json"; 

xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
     var myArr = JSON.parse(xmlhttp.responseText); 
     myFunction(myArr); 
    } 
} 
xmlhttp.open("GET", url, true); 
xmlhttp.send(); 

function myFunction(arr) { 
    var out = "<table border=1>"; 
    var i; 
    for(i = 0; i < arr.length; i++) { 
     out += "<tr>"; 
     for (j = 0; j < 3; j++) { 
      out += "<td>"+arr[i][j]+"</td>"; 
     } 
     out += "</tr>"; 
    } 
    out += "</table>"; 
    document.getElementById("JSONtable").innerHTML = out; 
} 
</script>