Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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_Arrays_Json_Api_Fetch - Fatal编程技术网

如何使用Javascript排除不存在的JSON数据?

如何使用Javascript排除不存在的JSON数据?,javascript,arrays,json,api,fetch,Javascript,Arrays,Json,Api,Fetch,我正在使用Javascript获取加载一些JSON数据。我想在HTML文档中整齐地显示数据 我在解析某些内容时遇到了一些问题。我试图解析的大多数数据对象都包含图像,我需要加载这些图像。当对象不包含图像时,问题就会出现。此时发生的事情是加载前3个图像(因为它们存在),然后第4个对象没有图像,循环停止加载其余图像(第5个、第6个等) 有人能看一下这个,给我一个正确的方向吗 fetch(url)。然后(函数(响应){ 返回response.json(); stringify(数据); }) .the

我正在使用Javascript获取加载一些JSON数据。我想在HTML文档中整齐地显示数据

我在解析某些内容时遇到了一些问题。我试图解析的大多数数据对象都包含图像,我需要加载这些图像。当对象不包含图像时,问题就会出现。此时发生的事情是加载前3个图像(因为它们存在),然后第4个对象没有图像,循环停止加载其余图像(第5个、第6个等)

有人能看一下这个,给我一个正确的方向吗

fetch(url)。然后(函数(响应){
返回response.json();
stringify(数据);
})
.then(功能(数据){
控制台日志(数据);
对于(变量i=0;i});
如果添加
,请检查媒体和图像url是否存在。该错误可能是由于试图访问丢失的
媒体[0]
上的
url

if(data[i] && data[i].media && data[i].media[0] && data[i].media[0].url) {...}
如果
数据[i]
为falsy(
在本例中未定义),则该条件将从左到右进行评估,它将不会尝试访问
数据[i]。媒体
,依此类推

例如:

fetch(url).then(function(response) {
    return response.json();
  })
  .then(function(data) {
    console.log(data);
    for (var i = 0; i < data.length; i++) {
      var listItem = document.createElement("li");
      var imgGrabber = document.createElement("img");

      listItem.innerHTML = data[i].title;

      if (data[i] && data[i].media && data[i].media[0] && data[i].media[0].url) {
        imgGrabber.src = data[i].media[0].url;
      }

      ul.appendChild(listItem);
      listItem.appendChild(imgGrabber);
    }

  });
fetch(url)。然后(函数(响应){
返回response.json();
})
.then(功能(数据){
控制台日志(数据);
对于(变量i=0;i
如果添加
,请检查媒体和图像url是否存在。该错误可能是由于试图访问丢失的
媒体[0]
上的
url

if(data[i] && data[i].media && data[i].media[0] && data[i].media[0].url) {...}
如果
数据[i]
为falsy(
在本例中未定义),则该条件将从左到右进行评估,它将不会尝试访问
数据[i]。媒体
,依此类推

例如:

fetch(url).then(function(response) {
    return response.json();
  })
  .then(function(data) {
    console.log(data);
    for (var i = 0; i < data.length; i++) {
      var listItem = document.createElement("li");
      var imgGrabber = document.createElement("img");

      listItem.innerHTML = data[i].title;

      if (data[i] && data[i].media && data[i].media[0] && data[i].media[0].url) {
        imgGrabber.src = data[i].media[0].url;
      }

      ul.appendChild(listItem);
      listItem.appendChild(imgGrabber);
    }

  });
fetch(url)。然后(函数(响应){
返回response.json();
})
.then(功能(数据){
控制台日志(数据);
对于(变量i=0;i
也许我错了,但我想只有一个例外——无法获取未定义的属性“url”。那么,也许只是增加条件

if(data[i].media) { // or data[i].media[0] - depends on JSON structure
   imgGrabber.src = data[i].media[0].url;
   listItem.appendChild(imgGrabber);
}

也许我错了,但我想只有一个例外——无法获取未定义的属性“url”。那么,也许只是增加条件

if(data[i].media) { // or data[i].media[0] - depends on JSON structure
   imgGrabber.src = data[i].media[0].url;
   listItem.appendChild(imgGrabber);
}

“停止”是什么意思?你是说你犯了个错误?当对象中有或没有图像时,可以显示JSON中的差异吗?这些记录上可能不存在
媒体
属性,或者它存在但没有项目?我猜,在尝试访问JSON之前,您可能只需要使用
if
来检查JSON中是否存在该属性,但根据可用的信息,它并不是100%清楚。请尝试
imgGrabber.src=data[I].media&&data[I].media.length?数据[i]。媒体[0]。url:
数据[i]。媒体
未定义或为空数组时,这可防止出现错误。使用
if
语句“停止”是什么意思?你是说你犯了个错误?当对象中有或没有图像时,可以显示JSON中的差异吗?这些记录上可能不存在
媒体
属性,或者它存在但没有项目?我猜,在尝试访问JSON之前,您可能只需要使用
if
来检查JSON中是否存在该属性,但根据可用的信息,它并不是100%清楚。请尝试
imgGrabber.src=data[I].media&&data[I].media.length?数据[i]。媒体[0]。url:
数据[i]。媒体
未定义的
或空数组时,这可防止出现错误。使用
if
语句