使用vue.js显示json结果

kqqjbcuj  于 2023-03-09  发布在  Vue.js
关注(0)|答案(6)|浏览(201)

您好,我尝试用vue.js显示json文件结果,目标是结果将显示在值上。
这是我的代码:

data () {
  return {
    fetchData: function () {

      var self = this;
      self .$http.get( "/api/casetotalactivation", function( data ) {
        self.items = data;
      });
    },

    statsCards: [
      {
        type: 'warning',
        icon: 'ti-server',
        title: 'Cases',
        value: this.items,
        footerText: 'Updated now',
        footerIcon: 'ti-reload'
      }

    ],
twh00eeo

twh00eeo1#

使用此代码:

<div id="vueapp">
  <textarea v-model="jsonstr" rows="8" cols="40"></textarea>
  <pre>{{ jsonstr | pretty }}</pre>
</div>

和JS:

new Vue({
  el: '#vueapp',
  data: {
    jsonstr: '{"id":1,"name":"A green door","price":12.50,"tags":["home","green"]}'
  },
  filters: {
    pretty: function(value) {
      return JSON.stringify(JSON.parse(value), null, 2);
    }
  }
})
0kjbasz6

0kjbasz62#

HTML和JS已经将此内置到语言中。

<pre>{{ yourObject }}</pre>

这给出了默认缩进,要指定自定义缩进,请将其作为JSON.stringify(...)的第三个参数提供。

// replace 2 with '\t' to do tab indentation 
<pre>{{ JSON.stringify(yourObject, null, 2) }}</pre>

如果你在Vue之外,那么使用上面的一些组合就可以了。

qfe3c7zg

qfe3c7zg3#

只需使用<pre>

<pre>{{json}}</pre>
goucqfw6

goucqfw64#

下面是使用Vue显示JSON数据的一种方法:

  • 使用v-model在<textarea>中显示字符串化的json对象
  • 使用<li v-for="">显示对象属性
<template>
  <div class="hello">
    <textarea v-model="listDataString" rows="20" cols="80"></textarea>
    <ul id="items">
      <li v-for="(item, index) in listData" :key="index">
        {{ `${item.text} [${item.id}]` }}
      </li>
    </ul>
  </div>
</template>

<script>
import axios from "axios";

export default {
  name: "RenderList",
  props: {
    msg: String,
  },
  data() {
    return {
      listDataString: String,
      listData: [], // placeholder
    };
  },
  mounted() {
    axios
      .get("=== [API_ENDPOINT] ===")
      .then((response) => {
        this.listDataString = JSON.stringify(response.data, null, "\t");
        this.listData = response.data;
        console.log(this.listDataString);
        return response; // multiline arrow function must return
      });
  },
};
</script>

lnxxn5zx

lnxxn5zx5#

如果/API仅位于dev服务器上,则可以在app根文件夹中创建vue.config.js文件。

module.exports = {
  devServer: {
    before: function(app, server) {
      app.get('/api', function(req, res) {
        const result = [{
          type: 'warning',
          icon: 'ti-server',
          title: 'Cases',
          value: this.items,
          footerText: 'Updated now',
          footerIcon: 'ti-reload'}];
        res.writeHead(200, {'Content-Type': 'application/json'});
        res.end(JSON.stringify(result));
      });
    }
  }
}

使用这些文件,当我运行npm run serve时,我会在导航到/api时获得json对象,否则会获得常规应用程序。

7vux5j2d

7vux5j2d6#

就用这个:

<pre v-html="JSON.stringify(objectJs, null, 2)"></pre>

相关问题