Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中读取JSON文件并将其转换为对象_Javascript_Json - Fatal编程技术网

如何在Javascript中读取JSON文件并将其转换为对象

如何在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 => {

我有一个JSON文件,其中包含我想用Javascript读取的数据,而不是用代码硬编码(超过3000行)

我尝试在HTML中引用JSON并使用它,但返回了一个空数组

在HTML中:

<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();
}