打造一個完美的JSON閱讀器

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,由於其簡潔、可讀性高和易於解析等特點,現已成為前端開發中最常用的數據傳輸格式。然而,一個好的 JSON 數據閱讀器可以讓數據的結構和內容更加清晰易讀,提高開發效率。接下來,我們將以打造一個完美的 JSON 閱讀器為例,來闡述如何從多個方面進行設計和優化。

一、解析JSON數據

如何解析JSON數據一般有兩種方式:直接使用eval()函數和使用JSON對象的parse()方法。eval()函數可以將任何JavaScript代碼字符串解析為可執行的代碼,在解析非簡單JSON數據時會帶來潛在的安全風險。因此,我們建議使用JSON對象的parse()方法進行JSON數據的解析。

const jsonStr = '[{"name": "John", "age": 35}, {"name": "Alex", "age": 25}]';
const jsonArray = JSON.parse(jsonStr); // 解析JSON字符串為數組
console.log(jsonArray); // [{name: "John", age: 35}, {name: "Alex", age: 25}]

在此基礎上,我們可以對解析後的 JSON 數據進行遍歷和操作,方便地將其展示到頁面上。

二、格式化JSON數據

當 JSON 數據非常大且嵌套層次很深時,其格式化後的展示可以更加清晰易讀。在展示 JSON 數據時,我們可以為其添加縮進和換行符等視覺分隔符,以達到更好的閱讀效果。

const jsonStr = `{
  "name": "John",
  "age": 35,
  "isMarried": true,
  "hobbies": [
    "reading",
    "swimming",
    "cooking"
  ],
  "address": {
    "street": "123 Main St",
    "city": "New York",
    "state": "NY",
    "zip": 10001
  }
}`;

const jsonFormatted = JSON.stringify(JSON.parse(jsonStr), null, 2); // 第二個參數為格式化選項
console.log(jsonFormatted);

/* 輸出結果
{
  "name": "John",
  "age": 35,
  "isMarried": true,
  "hobbies": [
    "reading",
    "swimming",
    "cooking"
  ],
  "address": {
    "street": "123 Main St",
    "city": "New York",
    "state": "NY",
    "zip": 10001
  }
}
*/

三、展開/摺疊JSON數據

在 JSON 數據非常大或者嵌套層次很深時,我們可以提供展開/摺疊功能,以方便用戶查看和操作數據。

// 使用遞歸方式遍歷JSON數據,增加展開/摺疊功能
function render(jsonObj, level) {
let html = '';
for(let key in jsonObj) {
const value = jsonObj[key]; // value可能為對象或數組
const valueType = Object.prototype.toString.call(value);

html += `
${key}:`;

if(valueType === '[object Object]') {
html += '{' + render(value, level+1) + '}';
} else if(valueType === '[object Array]') {
html += '[';
for(let i=0; i<value.length; i++) {
const item = value[i];
const itemType = Object.prototype.toString.call(item);
if(itemType === '[object Object]') {
html += '{';
html += render(item, level+1);
html += '} ';
} else {
html += `${item} `;
}
}
html += ']';
} else {
html += `${value}`;
}
html += '

原創文章,作者:PWZTP,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/367957.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
PWZTP的頭像PWZTP
上一篇 2025-04-02 01:28
下一篇 2025-04-02 01:28

相關推薦

  • KeyDB Java:完美的分布式高速緩存方案

    本文將從以下幾個方面對KeyDB Java進行詳細闡述:KeyDB Java的特點、安裝和配置、使用示例、性能測試。 一、KeyDB Java的特點 KeyDB Java是KeyD…

    編程 2025-04-29
  • JSON的MD5

    在Web開發過程中,JSON(JavaScript Object Notation)是最常用的數據格式之一。MD5(Message-Digest Algorithm 5)是一種常用…

    編程 2025-04-29
  • 使用Java將JSON寫入HDFS

    本篇文章將從以下幾個方面詳細闡述Java將JSON寫入HDFS的方法: 一、HDFS簡介 首先,先來了解一下Hadoop分布式文件系統(HDFS)。HDFS是一個可擴展性高的分布式…

    編程 2025-04-29
  • 金融閱讀器提示配置文件無法識別

    在使用金融閱讀器過程中,有時會遇到提示配置文件無法識別的情況。這種情況通常是由於配置文件中存在錯誤或不完整所導致的。本文將從多個方面對此問題進行詳細的闡述,並提供相應解決方法。 一…

    編程 2025-04-28
  • 如何使用Newtonsoft datatable轉Json

    Newtonsoft DataTable 是一個基於.NET的JSON框架,也是一個用於序列化和反序列化JSON的強大工具。 在本文中,我們將學習如何使用Newtonsoft Da…

    編程 2025-04-28
  • JPRC – 輕鬆創建可讀性強的 JSON API

    本文將介紹一個全新的 JSON API 框架 JPRC,通過該框架,您可以輕鬆創建可讀性強的 JSON API,提高您的項目開發效率和代碼可維護性。接下來將從以下幾個方面對 JPR…

    編程 2025-04-27
  • Python存為JSON的方法及實例

    本文將從以下多個方面對Python存為JSON做詳細的闡述。 一、JSON簡介 JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,易於人閱…

    編程 2025-04-27
  • 使用Python獲取JSON並解析

    本文將介紹如何使用Python獲取JSON數據並解析相關內容。通過使用Python的第三方庫,我們可以輕鬆地處理JSON數據,包括讀取、提取和操作JSON數據。 一、獲取JSON數…

    編程 2025-04-27
  • 使用Spread 8展示JSON數據

    使用Spread 8可以方便地展示JSON數據,本文將詳細介紹如何利用Spread 8展示JSON數據。 一、Spread 8簡介 Spread 8是一款強大的電子表格軟件,可以方…

    編程 2025-04-27
  • 如何在json轉實體類時忽略大小寫

    本文將從以下幾個方面介紹如何在json轉實體類時忽略大小寫。 一、使用Gson庫實現json轉實體類忽略大小寫 Gson是Google提供的Java JSON操作庫,它提供了簡單易…

    編程 2025-04-27

發表回復

登錄後才能評論