国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

如何實現json數據可視化詳解

2019-11-19 18:50:20
字體:
來源:轉載
供稿:網友

前言

本文介紹的是如何實現json數據可視化,要用到的核心是JSON.stringify這個函數,沒想到吧,平時我們只把它用來序列號json數據。

JSON.stringify 函數

將 JavaScript 值轉換為 JavaScript 對象表示法 (Json) 字符串。

語法

JSON.stringify(value [, replacer] [, space])

參數

value

     必需。  要轉換的 JavaScript 值(通常為對象或數組)。 

replacer

     可選。  用于轉換結果的函數或數組。 

     如果 replacer 為函數,則 JSON.stringify 將調用該函數,并傳入每個成員的鍵和值。  使用返回值而不是原始值。  如果此函數返回 undefined,則排除成員。  根對象的鍵是一個空字符串:""。 

     如果 replacer 是一個數組,則僅轉換該數組中具有鍵值的成員。  成員的轉換順序與鍵在數組中的順序一樣。  當 value 參數也為數組時,將忽略 replacer 數組。 

space

     可選。  向返回值 JSON 文本添加縮進、空格和換行符以使其更易于讀取。 

     如果省略 space,則將生成返回值文本,而沒有任何額外空格。

     如果 space 是一個數字,則返回值文本在每個級別縮進指定數目的空格。  如果 space 大于 10,則文本縮進 10 個空格。 

     如果 space 是一個非空字符串(例如“/t”),則返回值文本在每個級別中縮進字符串中的字符。

     如果 space 是長度大于 10 個字符的字符串,則使用前 10 個字符。

返回值

一個包含 JSON 文本的字符串。

json數據可視化

我們要用到的就是這第三個參數,它可以指定在生成的字符串中加多少空格,從而生成有一定格式的字符串。生成的字符串我們可以放在<pre>標簽中,這樣就能很好的顯示縮進。然后呢,為了讓生成的數據有高亮效果,我們還可以寫一個簡單的高亮函數。

基本就是這么個原理啦,請看代碼實現:

function output(inp) { document.body.appendChild(document.createElement('pre')).innerHTML = inp;}function syntaxHighlight(json) { json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'); return json.replace(/("(//u[a-zA-Z0-9]{4}|//[^u]|[^//"])*"(/s*:)?|/b(true|false|null)/b|-?/d+(?:/./d*)?(?:[eE][+/-]?/d+)?)/g, function (match) {  var cls = 'number';  if (/^"/.test(match)) {   if (/:$/.test(match)) {    cls = 'key';   } else {    cls = 'string';   }  } else if (/true|false/.test(match)) {   cls = 'boolean';  } else if (/null/.test(match)) {   cls = 'null';  }  return '<span class="' + cls + '">' + match + '</span>'; });}var obj = { num: 1234, str: '字符串', arr: [1,2,3,4,5,6], obj: {  name: 'tom',  age: 10,  like: ['a', 'b'] }};var str = JSON.stringify(obj, undefined, 4);output(syntaxHighlight(str));

最終生成的效果就是這樣的:

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东安县| 石首市| 青神县| 沂水县| 博白县| 化隆| 亳州市| 涿鹿县| 湾仔区| 嘉黎县| 望城县| 额敏县| 新密市| 临武县| 茶陵县| 永安市| 舒城县| 循化| 永靖县| 西安市| 崇左市| 漳浦县| 湘西| 子长县| 遂川县| 青铜峡市| 潮安县| 锦州市| 高要市| 鄂尔多斯市| 米脂县| 同心县| 江安县| 诸暨市| 信丰县| 静海县| 台安县| 沐川县| 天镇县| 宁津县| 津市市|