vue3 json格式化展示

在前端开发中,当需要展示JSON数据时,可以使用<code>&lt;pre&gt;</code>标签直接展示已格式化的数据。若数据是字符串格式,则需先通过<code>JSON.stringify</code>进行转换。对于非JSON格式的字符串,可以使用过滤器或直接处理后再显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前台我们需要展示一段json数据,希望能够格式化展示,能够自动的换行和装换符号。如下图
在这里插入图片描述
为展示此图,我们分情况讨论,分为前端接收的数据为json格式或string格式

数据为json格式

上图数据,我直接放入

标签即可格式化显示

 <pre>{{ record.value }}</pre>

数据为String格式

如果数据不是json格式,我们则需要对数据进行格式化或使用json过滤器直接显示

this.jsonData= JSON.stringify(data, null, 4);

<span v-html="jsonData"></span>
<span> {{data | json}}</span>

### 推荐适用于 Vue3JSON 格式化库 对于 Vue3 项目,可以使用 **`vue3-json-viewer`** 来实现 JSON 数据的格式化和可视化展示[^2]。该库支持多种功能特性,例如展开深度控制、复制按钮、排序选项以及扩展模式等功能。 #### 安装方法 通过 npm 下载 `vue3-json-viewer` 库: ```bash npm install vue3-json-viewer --save ``` #### 全局注册方式 在项目的入口文件(如 `main.ts` 或 `main.js`)中进行全局注册: ```typescript import { createApp } from &#39;vue&#39;; import App from &#39;./App.vue&#39;; // 引入 vue3-json-viewer 及其样式文件 import JsonViewer from "vue3-json-viewer"; import "vue3-json-viewer/dist/index.css"; const app = createApp(App); app.use(JsonViewer).mount(&#39;#app&#39;); ``` #### 组件局部使用示例 如果仅需在特定组件中使用,则可以直接导入并声明为子组件: ```html <template> <div> <!-- 遍历 JSON 数组 --> <div v-for="(item, index) in parsedOldData" :key="index"> <json-viewer :value="item" :expand-depth="5" copyable boxed sort expanded /> </div> </div> </template> <script lang="ts"> import { defineComponent, computed } from &#39;vue&#39;; import JsonViewer from &#39;vue3-json-viewer&#39;; import &#39;vue3-json-viewer/dist/index.css&#39;; export default defineComponent({ components: { JsonViewer, }, props: { dialogData: { type: Object, required: true, }, }, setup(props) { const parsedOldData = computed(() => JSON.parse(props.dialogData.oldData)); return { parsedOldData, }; }, }); </script> ``` 上述代码展示了如何解析字符串形式的 JSON 并将其传递给 `<json-viewer>` 组件以实现可视化的渲染效果。 #### 替代方案 除了 `vue3-json-viewer` 外,还可以考虑其他替代方案来满足不同的需求: 1. 使用原生 HTML `<pre>` 标签配合 JavaScript 方法 `JSON.stringify()` 实现简单的 JSON 格式化显示[^3]: ```html <template> <pre>{{ formattedJson }}</pre> </template> <script lang="ts"> import { defineComponent, ref, watchEffect } from &#39;vue&#39;; export default defineComponent({ setup() { const jsonData = ref({ key: &#39;value&#39;, nested: { innerKey: &#39;innerValue&#39; } }); const formattedJson = ref(&#39;&#39;); watchEffect(() => { formattedJson.value = JSON.stringify(jsonData.value, null, 4); }); return { jsonData, formattedJson, }; }, }); </script> ``` 2. 自定义过滤器或工具函数处理复杂场景下的 JSON 显示逻辑[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值