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 Vue循环嵌套JSON问题_Javascript_Json_Loops_Vue.js_Vue Component - Fatal编程技术网

Javascript Vue循环嵌套JSON问题

Javascript Vue循环嵌套JSON问题,javascript,json,loops,vue.js,vue-component,Javascript,Json,Loops,Vue.js,Vue Component,我在访问嵌套的JSON文件时遇到了一点问题 下面是一个较大JSON文件的一小部分: { "first": "SOME_TEXT", "second": 1, "items": [ { "volumeInfo": { "first": "SOME_TEXT", "second": [ "SOME_TEXT"

我在访问嵌套的JSON文件时遇到了一点问题

下面是一个较大JSON文件的一小部分:

{
    "first": "SOME_TEXT",
    "second": 1,
    "items": [
        {
            "volumeInfo": {
                "first": "SOME_TEXT",
                "second": [
                    "SOME_TEXT"
                ],
                "imageLinks": {
                    "smallThumbnail": "http://books.google.com/books/content?id=hpTEDwAAQBAJ&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_api",
                    "thumbnail": "http://books.google.com/books/content?id=hpTEDwAAQBAJ&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api"
                }
            }
        }
    ]
}
…这是我的Vue组件:

<template>
  <div>
      <b-container v-for="(res, index) in res.items" :key="index">
              <!-- Img path from response -->
              <b-img :src="res.volumeInfo.imageLinks.smallThumbnail"></b-img>
      </b-container>
    </div>
</template>
脚本:

<script>
export default {
  name: 'Component',
  data () {
    return {
      res: '',
    }
  },
  mounted () {
    fetch('API-URL-HERE')
      .then(res => {
        return res.json()
      })
      .then(res => {
        this.res = res
      })
  }
}
</script>
我正在尝试循环一个大的JSON文件,这样我就可以通过循环获得Vue组件的小缩略图。当我像在Vue组件中那样编写代码时,我得到了TypeError:无法读取未定义的属性“smallTumbnail”


我的Vue代码有什么问题?如何从JSON文件中访问一个项目,这是进一步嵌套的?

好的,问题是JSON文件完全混合了。并非每个实例都有imageLinks,嵌套数据的数量也不尽相同。这就是为什么循环遇到没有ImageLink的嵌套时会中断。JSON文件被有意地洗牌,以使生活和编程更加困难

您应该使用:

<b-img v-if="res.volumeInfo.imageLinks" :src="res.volumeInfo.imageLinks.smallThumbnail"></b-img>
而不是

<b-img :src="res.volumeInfo.imageLinks.smallThumbnail"></b-img> 

这是您的问题中的一个输入错误,还是您实际上正在尝试访问SmallTumbMail而不使用v-for中的H字母?感谢您的捕获,它在代码中实际上是正确的,但在这里编写时出现了一个输入错误:您的响应是否返回了有效的json对象或字符串?我已经在JSFIDLE上测试了你的代码,效果很好。下面是JSON的URL:Can you show console.logres?就是这样!非常感谢。