2017-08-25 52 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>

相关问题