如何使用vue js循环嵌套的json响应

Posted

技术标签:

【中文标题】如何使用vue js循环嵌套的json响应【英文标题】:how to loop through nested json response with vue js 【发布时间】:2021-03-01 16:14:25 【问题描述】:

我实际上是 Vue JS 的新手,所以我在使用 v-for 循环 api 响应时遇到了一些问题 这是我的html

获取硬币数据

<div v-for="coin in coinsData">coinsData.data.coins.name</div>

我的javascript

 var app = new Vue(
        el: '#app',
        data: 
            coinsData: []
        ,
        methods: 
    getCoinsData() 
      fetch("https://api.coinranking.com/v1/public/coins")
        .then(response => response.json())
        .then(data => (this.coinsData = data));
    
  
    )

我想循环的回复是https://api.coinranking.com/v1/public/coins 它很大,所以我没有把它贴在这里:)

【问题讨论】:

【参考方案1】:

在像created 这样的生命周期钩子中调用方法。并确保您获得正确的响应属性; coins实际上在响应中深了3层:

var app = new Vue(
  el: '#app',
  data: 
    coinsData: []
  ,
  methods: 
    getCoinsData() 
      fetch("https://api.coinranking.com/v1/public/coins")
        .then(response => response.json())
        .then(json => this.coinsData = json.data.coins);
    
  ,
  created() 
    this.getCoinsData();
  
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
  <div v-for="coin in coinsData"> coin.name </div>
</div>

【讨论】:

没问题。哦,我本可以保持方法不变并将模板更改为:&lt;div v-for="coin in coinsData.data.coins"&gt; coin.name &lt;/div&gt; 我现在看到您知道对象结构了。

以上是关于如何使用vue js循环嵌套的json响应的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Vue.js 的嵌套 v-for 循环中使用 v-html 有条件地渲染原始 HTML?

如何在 Vue.js 中过滤数组和循环 V-for

如何在 Vue.js 2 中发送 JSON 数据作为响应?

如何在 vue.js 模板中编写递归嵌套循环?

PHP 循环遍历嵌套的 JSON 响应并重新组装为 Webhook 的简单查询字符串

Rails 使用 JSON 将深度嵌套属性到 Vue 实例