如何在Javascript中读取JSON文件并将其转换为对象
我有一个JSON文件,其中包含我想用Javascript读取的数据,而不是用代码硬编码(超过3000行) 我尝试在HTML中引用JSON并使用它,但返回了一个空数组 在HTML中:如何在Javascript中读取JSON文件并将其转换为对象,javascript,json,Javascript,Json,我有一个JSON文件,其中包含我想用Javascript读取的数据,而不是用代码硬编码(超过3000行) 我尝试在HTML中引用JSON并使用它,但返回了一个空数组 在HTML中: <script type="file" src="data.json"></script> 我得到的是一个空数组,而不是数据。使用窗口。获取: fetch('data.json') .then(body => body.json()) .then(data => {
<script type="file" src="data.json"></script>
我得到的是一个空数组,而不是数据。使用
窗口。获取:
fetch('data.json')
.then(body => body.json())
.then(data => {
//do stuff with data
});
如果您有一个data.json
文件,该文件以{
或[
开头,分别以}
,]
结尾,只需在文件前面添加var data=
,我就不能使用jquery。并将该文件作为脚本导入,并将其用作JS变量。我收到以下错误:Fetch API无法加载URL。对于CORS请求,URL方案必须为“http”或“https”。@elcondores您正在尝试从其他域加载数据吗?如果是这样,只需输入完整的URL,例如:fetch('https://jsonplaceholder.typicode.com/todos/1“)
它只是js文件附近的一个本地文件,请尝试输入完整的URL(这样,如果在浏览器上打开URL,就会显示JSON文件)。或者尝试使用相对路径,例如:/data.json
。文件协议与http[s]有不同的限制,请运行本地服务器
fetch('data.json')
.then(body => body.json())
.then(data => {
//do stuff with data
});
function readJSON(path) {
var xhr = new XMLHttpRequest();
xhr.open('GET', path, true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 200) {
var file = new File([this.response], 'temp');
var fileReader = new FileReader();
fileReader.addEventListener('load', function(){
//do stuff with fileReader.result
});
fileReader.readAsText(file);
}
}
xhr.send();
}