您好我尝试用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'
}
],
答案 0 :(得分:8)
使用此代码:
<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);
}
}
})
答案 1 :(得分:3)
HTML和JS已将其内置到语言中。试试...
<pre>{{ JSON.stringify(yourObject, null, '\t') }}</pre>
该示例使用'\t'
或tab
缩进。要缩进2个空格,请将'\t'
替换为2
。
答案 2 :(得分:0)
如果/ api仅在开发服务器上,则可以在应用程序根文件夹中创建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对象,否则我会在常规应用程序中得到
答案 3 :(得分:0)
以下代码显示了如何在Vue 3中显示json结果
<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>
答案 4 :(得分:0)
只需使用 pink
<pre>
答案 5 :(得分:0)
就用这个:
<pre v-html="JSON.stringify(objectJs, null, 2)"></pre>