最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Vue.js前端頁(yè)面中顯示完整JSON格式數(shù)據(jù)的實(shí)現(xiàn)方案

 更新時(shí)間:2025年09月24日 08:37:55   作者:就在呀  
這篇文章主要介紹了如何在Vue.js前端頁(yè)面中將JSON字符串格式化顯示為可讀的、帶縮進(jìn)的JSON格式,類似于IDE中的代碼顯示效果,需要的朋友可以參考下

概述

本文檔記錄了如何在Vue.js前端頁(yè)面中將JSON字符串格式化顯示為可讀的、帶縮進(jìn)的JSON格式,類似于IDE中的代碼顯示效果。

問(wèn)題描述

當(dāng)后端返回的JSON數(shù)據(jù)是字符串格式時(shí),直接在前端顯示會(huì)呈現(xiàn)為壓縮的一行文本,不便于閱讀和調(diào)試。我們需要將其格式化為標(biāo)準(zhǔn)的JSON格式,包含適當(dāng)?shù)目s進(jìn)和換行。

解決方案

1. Vue組件實(shí)現(xiàn)

<template>
  <div>
    <pre>{{ formattedJson }}</pre>
  </div>
</template>

<script setup>
import { computed } from 'vue';

// 示例JSON字符串(雙重編碼)模擬后端返回的數(shù)據(jù)
let str = '"[{\\"BusinessDate\\":\\"2025-09-11\\",\\"OtherID\\":null,\\"TransOutLines\\":[{\\"ItemInfo\\":{\\"ItemCode\\":\\"109-02-00001\\"},\\"StoreUOMQty\\":1.0000}]}]"';

// 格式化JSON字符串
const formattedJson = computed(() => {
  try {
    // 處理雙重編碼的JSON字符串
    const parsedString = JSON.parse(str);
    const parsedJson = JSON.parse(parsedString);
    return JSON.stringify(parsedJson, null, 2);
  } catch (error) {
    console.error('JSON解析錯(cuò)誤:', error);
    return 'JSON格式錯(cuò)誤';
  }
});
</script>

<style scoped lang="scss">
pre {
  background-color: #f8f8f8;
  border: 1px solid #e1e1e1;
  border-radius: 4px;
  padding: 16px;
  font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
  font-size: 14px;
  line-height: 1.5;
  overflow-x: auto;
  white-space: pre;
  color: #333;
  margin: 0;
}
</style>

2. 關(guān)鍵技術(shù)點(diǎn)

2.1 雙重JSON解析

// 第一次解析:解析外層字符串
const parsedString = JSON.parse(str);
// 第二次解析:解析內(nèi)層JSON
const parsedJson = JSON.parse(parsedString);

說(shuō)明:當(dāng)JSON數(shù)據(jù)被雙重編碼時(shí)(字符串中包含轉(zhuǎn)義的JSON),需要進(jìn)行兩次解析。

2.2 JSON格式化

JSON.stringify(parsedJson, null, 2)

參數(shù)說(shuō)明

  • parsedJson: 要格式化的JSON對(duì)象
  • null: 替換函數(shù)(這里不需要)
  • 2: 縮進(jìn)空格數(shù)

2.3 CSS樣式關(guān)鍵點(diǎn)

pre {
  white-space: pre;           // 保留所有空格和換行符
  font-family: monospace;     // 使用等寬字體
  overflow-x: auto;           // 水平滾動(dòng)條
  background-color: #f8f8f8;  // 背景色區(qū)分
}

使用場(chǎng)景

  1. API調(diào)試:顯示后端返回的JSON數(shù)據(jù)
  2. 數(shù)據(jù)預(yù)覽:在管理后臺(tái)展示配置數(shù)據(jù)
  3. 日志查看:格式化顯示日志中的JSON信息
  4. 開(kāi)發(fā)調(diào)試:臨時(shí)查看復(fù)雜的JSON結(jié)構(gòu)

常見(jiàn)問(wèn)題及解決方案

問(wèn)題1:JSON顯示為一行

原因:CSS樣式中缺少 white-space: pre 屬性

解決:確保pre標(biāo)簽包含正確的CSS樣式

問(wèn)題2:JSON解析失敗

原因

  • JSON字符串格式不正確
  • 需要多次解析(雙重編碼)
  • 特殊字符轉(zhuǎn)義問(wèn)題

解決

try {
  // 根據(jù)實(shí)際情況調(diào)整解析次數(shù)
  let result = JSON.parse(str);
  if (typeof result === 'string') {
    result = JSON.parse(result);
  }
  return JSON.stringify(result, null, 2);
} catch (error) {
  console.error('解析錯(cuò)誤:', error);
  return '數(shù)據(jù)格式錯(cuò)誤';
}

問(wèn)題3:長(zhǎng)JSON內(nèi)容顯示不全

解決:添加滾動(dòng)條和最大高度限制

pre {
  max-height: 500px;
  overflow-y: auto;
  overflow-x: auto;
}

總結(jié)

通過(guò)合理的JSON解析和CSS樣式設(shè)置,可以在前端頁(yè)面中優(yōu)雅地顯示格式化的JSON數(shù)據(jù)。關(guān)鍵點(diǎn)包括:

  1. 正確處理JSON字符串的編碼層級(jí)
  2. 使用 JSON.stringify() 進(jìn)行格式化
  3. 設(shè)置合適的CSS樣式保持格式
  4. 添加錯(cuò)誤處理機(jī)制

這種方法簡(jiǎn)單有效,適用于大多數(shù)JSON數(shù)據(jù)展示場(chǎng)景。

以上就是在Vue.js前端頁(yè)面中顯示完整JSON格式數(shù)據(jù)的實(shí)現(xiàn)方案的詳細(xì)內(nèi)容,更多關(guān)于Vue前端顯示完整JSON數(shù)據(jù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue3如何自定義指令directive(如權(quán)限控制)

    Vue3如何自定義指令directive(如權(quán)限控制)

    本文詳細(xì)介紹了如何在Vue3項(xiàng)目中創(chuàng)建自定義指令directive1,首先,在src/directives/index.ts文件中引入自定義指令,然后,創(chuàng)建src/directives/permission.ts文件來(lái)定義具體指令邏輯,在main.ts文件中引入并注冊(cè)該指令,最后,在頁(yè)面中使用自定義指令
    2024-12-12
  • Vue中的computed與watch底層實(shí)現(xiàn)原理最佳實(shí)踐

    Vue中的computed與watch底層實(shí)現(xiàn)原理最佳實(shí)踐

    本文介紹Vue中computed和watch的底層實(shí)現(xiàn)原理,對(duì)比了核心概念、設(shè)計(jì)差異以及使用場(chǎng)景,通過(guò)分析computed的初始化、依賴追蹤、緩存機(jī)制,以及watch的初始化、深度監(jiān)聽(tīng)、異步更新,本文提供了一個(gè)全面的對(duì)比總結(jié),并給出了性能優(yōu)化和最佳實(shí)踐建議,感興趣的朋友一起看看吧
    2026-01-01
  • 登錄頁(yè)面的實(shí)現(xiàn)及跳轉(zhuǎn)代碼實(shí)例(vue-router)

    登錄頁(yè)面的實(shí)現(xiàn)及跳轉(zhuǎn)代碼實(shí)例(vue-router)

    在Vue.js中可以使用vue-router來(lái)實(shí)現(xiàn)前端路由,通過(guò)路由來(lái)跳轉(zhuǎn)頁(yè)面,這篇文章主要給大家介紹了關(guān)于登錄頁(yè)面的實(shí)現(xiàn)及跳轉(zhuǎn)(vue-router)的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • element中Select選擇器實(shí)現(xiàn)自定義顯示內(nèi)容

    element中Select選擇器實(shí)現(xiàn)自定義顯示內(nèi)容

    在我們很多前端業(yè)務(wù)開(kāi)發(fā)中,往往為了方便,都需要自定義一些用戶組件,本文主要介紹了element中Select選擇器實(shí)現(xiàn)自定義顯示內(nèi)容,感興趣的可以了解一下
    2023-12-12
  • Vue項(xiàng)目打包成Docker鏡像包的簡(jiǎn)單步驟

    Vue項(xiàng)目打包成Docker鏡像包的簡(jiǎn)單步驟

    最近做時(shí)速云項(xiàng)目部署,需要將前端項(xiàng)目打成鏡像文件,下面這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目打包成Docker鏡像包的簡(jiǎn)單步驟,需要的朋友可以參考下
    2023-10-10
  • Vue3.x的版本中build后dist文件中出現(xiàn)legacy的js文件問(wèn)題

    Vue3.x的版本中build后dist文件中出現(xiàn)legacy的js文件問(wèn)題

    這篇文章主要介紹了Vue3.x的版本中build后dist文件中出現(xiàn)legacy的js文件問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 詳解使用webpack打包編寫(xiě)一個(gè)vue-toast插件

    詳解使用webpack打包編寫(xiě)一個(gè)vue-toast插件

    本篇文章主要介紹了詳解使用webpack打包編寫(xiě)一個(gè)vue插件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • vue中實(shí)現(xiàn)展示與隱藏側(cè)邊欄功能

    vue中實(shí)現(xiàn)展示與隱藏側(cè)邊欄功能

    這篇文章主要介紹了vue中實(shí)現(xiàn)展示與隱藏側(cè)邊欄功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • vue服務(wù)端渲染緩存應(yīng)用詳解

    vue服務(wù)端渲染緩存應(yīng)用詳解

    vue緩存分為頁(yè)面緩存、組建緩存、接口緩存,這里我主要說(shuō)到了頁(yè)面緩存和組建緩存。接下來(lái)通過(guò)本文給大家介紹vue服務(wù)端渲染緩存應(yīng)用 ,需要的朋友可以參考下
    2018-09-09
  • vue前端導(dǎo)出多級(jí)表頭的excel表的示例代碼

    vue前端導(dǎo)出多級(jí)表頭的excel表的示例代碼

    本文主要介紹了vue前端導(dǎo)出多級(jí)表頭的excel表的示例代碼,可以使用xlsx庫(kù)來(lái)創(chuàng)建Excel文件,下面就來(lái)具體介紹一下,感興趣的可以了解一下
    2024-06-06

最新評(píng)論

甘肃省| 鸡东县| 东乡县| 仙居县| 常熟市| 磴口县| 新竹市| 鸡西市| 买车| 诸城市| 巴塘县| 临夏县| 四子王旗| 恩平市| 尖扎县| 仁布县| 综艺| 桓台县| 全椒县| 如东县| 石屏县| 泰来县| 怀仁县| 黄石市| 全南县| 丹棱县| 常山县| 汝城县| 馆陶县| 肇州县| 崇阳县| 包头市| 呼和浩特市| 古蔺县| 淳化县| 安图县| 三穗县| 彝良县| 广西| 磴口县| 台中县|