2017-08-25 72 views
1

我想使用下面的代碼將本地JSON數據呈現給DOM,但它不工作。我不確定我做錯了什麼,並希望得到任何幫助。爲什麼JSON數據沒有正確插入

HTML

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Untitled Document</title> 
<script src="model-controller.js"></script> 
</head> 

<body> 
<button id="clickMe" style="background-color: #000; color: white;" onClick="myObj()">Click ME</button> 

</div> 
<div id="demo"></div> 


</body> 
</html> 

模型controller.js

var myObj = JSON.parse("item-data.json", function(data) {return data}); 
document.getElementById("demo").innerHTML = data; 
}; 
myObj(); 

回答

1

JSON.parse函數獲取表示JSON編碼對象,而不是一個文件路徑的字符串。

如果你需要分析你可以使用jQuery來訪問文件

$.getJSON('item-data.json', function(data) {   
    document.getElementById("demo").innerHTML = data; 
}); 

一個文件或使用香草JavaScript,然後JSON.parse獲取該文件的內容是:

var request = new XMLHttpRequest(); 
    request.open("GET", "item-data.json", false); 
    request.send(null) 
    var json_obj = JSON.parse(request.responseText); 
    document.getElementById("demo").innerHTML = json_obj; 
+0

因此,這將得到的數據,分析它,並把它插入到div ID爲 「演示」? – SDH

+0

基本上是:) – Dekel

+0

好吧。感謝您的迴應。 – SDH

1

JSON.parse解析給JS的一個給定的字符串。它不會加載外部文件。 See this page for more info on the JSON.parse method

你想要做的是用文件獲取文件。 jQuery.getJSONjQuery.getaxios

jQuery.get('https://api.coinbase.com/v2/prices/spot?currency=USD', (data) => { 
 
    $('#result').text(JSON.stringify(data, null, 2)); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<pre id="result"></pre>

相關問題