You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js中如何在DOM中访问并展示JSON数据?

Vue.js 中访问并展示JSON数据的解决方法

核心问题是你没有把axios请求返回的JSON数据赋值给Vue实例data中的responseObject,导致模板无法获取到响应式数据。以下是具体修复步骤:

1. 正确初始化data中的变量

确保在组件的data选项里定义responseObject,给它一个初始值避免渲染时报错:

export default {
  data() {
    return {
      responseObject: null // 如果接口返回数组,初始值设为[]更合适
    }
  },
  // ...其他组件选项
}

2. 在mounted钩子中完成数据赋值

修改axios请求的回调,把接口返回的JSON数据(即response.data)赋值给this.responseObject,注意使用箭头函数保证this指向Vue实例:

mounted() {
  axios.get('你的接口URL')
    .then(response => {
      // 将接口返回的JSON数据绑定到响应式变量
      this.responseObject = response.data
    })
    .catch(err => {
      console.log('请求出错:', err)
    })
}

3. 模板中安全渲染数据

模板里要处理数据未加载完成的状态,用v-if判断数据是否存在,再进行渲染:
假设接口返回的JSON结构是:

{
  "name": "Alice",
  "email": "alice@example.com",
  "posts": [
    {"id": 1, "title": "第一篇文章"},
    {"id": 2, "title": "第二篇文章"}
  ]
}

对应的模板代码:

<template>
  <div class="data-container">
    <!-- 数据加载完成前显示占位 -->
    <div v-if="!responseObject">加载中...</div>
    
    <!-- 数据加载完成后渲染 -->
    <div v-else>
      <h2>{{ responseObject.name }}</h2>
      <p>邮箱: {{ responseObject.email }}</p>
      <h3>文章列表</h3>
      <ul>
        <li v-for="post in responseObject.posts" :key="post.id">
          {{ post.title }}
        </li>
      </ul>
    </div>
  </div>
</template>

这样修改后,Vue就能通过响应式系统感知到responseObject的变化,自动更新DOM展示JSON数据了。

内容的提问来源于stack exchange,提问作者xander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 23:55:10