欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何實現(xiàn)json數(shù)據(jù)可視化詳解

 更新時間:2016年11月24日 10:59:32   作者:呂大豹  
最近在工作中開發(fā)一個內(nèi)部功能時碰到的一個需求,要把json數(shù)據(jù)在頁面上展示出來,平時瀏覽器會安裝jsonView這樣的擴展來看json數(shù)據(jù),但是程序要用到的話該怎么辦呢?今天在網(wǎng)上搜索的時候,發(fā)現(xiàn)了這個小技巧,分享給大家,有需要的朋友們可以參考借鑒,下面來一起看看吧

前言

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

JSON.stringify 函數(shù)

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

語法

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

參數(shù)

value

     必需。  要轉(zhuǎn)換的 JavaScript 值(通常為對象或數(shù)組)。 

replacer

     可選。  用于轉(zhuǎn)換結(jié)果的函數(shù)或數(shù)組。 

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

     如果 replacer 是一個數(shù)組,則僅轉(zhuǎn)換該數(shù)組中具有鍵值的成員。  成員的轉(zhuǎn)換順序與鍵在數(shù)組中的順序一樣。  當(dāng) value 參數(shù)也為數(shù)組時,將忽略 replacer 數(shù)組。 

space

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

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

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

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

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

返回值

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

json數(shù)據(jù)可視化

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

基本就是這么個原理啦,請看代碼實現(xiàn):

function output(inp) {
 document.body.appendChild(document.createElement('pre')).innerHTML = inp;
}

function syntaxHighlight(json) {
 json = json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
 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));

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

總結(jié)

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

相關(guān)文章

  • JSON輔助格式化處理方法

    JSON輔助格式化處理方法

    由于結(jié)果是以json形式返回的,不容易一眼辨認,所以為了方便,對結(jié)果進行了簡單的處理,接下來介紹下處理方法,感興趣的各位可以參考下哈
    2013-03-03
  • 一篇了解JSON與數(shù)據(jù)存儲基礎(chǔ)知識

    一篇了解JSON與數(shù)據(jù)存儲基礎(chǔ)知識

    這篇文章主要介紹了JSON與數(shù)據(jù)存儲基礎(chǔ)知識,本篇文章較為基礎(chǔ),但非常詳細,可以很好的理解JSON和數(shù)據(jù)存儲,,需要的朋友可以參考下
    2023-01-01
  • web頁面數(shù)據(jù)展示新想法(json)

    web頁面數(shù)據(jù)展示新想法(json)

    若使用json作為客戶端和服務(wù)器之間的數(shù)據(jù)交換格式,代替原來的html交換格式。
    2010-06-06
  • 正則表達式搭配js輕松處理json文本方便而老古

    正則表達式搭配js輕松處理json文本方便而老古

    如何解析Json已經(jīng)成為了眾多業(yè)內(nèi)人士談?wù)摰慕裹c,依我看,要解析輕量化類型json,用.net自帶的類庫就可以勝任了,有一種看起來更方便的老古董——正則表達式,處理json是綽綽有余,感興趣的你可不要錯過了哈
    2013-02-02
  • ASP Json Parser修正版

    ASP Json Parser修正版

    之前因為要用json,在網(wǎng)上,json Generator就不少,但是,parser鮮有后來,在一個老外的啟發(fā)下,寫了一個praser,其實超簡單,就是利用了JS的eval來parse,然后,把對象再返回給vbscript代碼。
    2009-12-12
  • 用JSON做數(shù)據(jù)傳輸格式中的一些問題總結(jié)

    用JSON做數(shù)據(jù)傳輸格式中的一些問題總結(jié)

    Json 憑借其自身的優(yōu)勢,在Web數(shù)據(jù)處理方面已經(jīng)占據(jù)了一定的位置,這段時間涉及到用Json做為數(shù)據(jù)傳輸格式的項目有3個,其中有部分頁面就采用了Json 數(shù)據(jù)傳輸格式, 這里我總結(jié)下這段時間采用這種方式的一些問題總結(jié)
    2011-12-12
  • 父子窗體間傳遞JSON格式的數(shù)據(jù)的代碼

    父子窗體間傳遞JSON格式的數(shù)據(jù)的代碼

    在開發(fā)的項目中,遇到這樣一個例子:當(dāng)用戶選擇某一個用戶名時,彈出當(dāng)前用戶的評分卷,該評分卷列出了所有一級評分項,讓用戶進行評分操作。
    2010-12-12
  • JSON 數(shù)據(jù)格式詳解

    JSON 數(shù)據(jù)格式詳解

    JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。JSON采用完全獨立于語言的文本格式,這些特性使JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機器解析和生成
    2017-09-09
  • 使用JSON作為函數(shù)的參數(shù)的優(yōu)缺點

    使用JSON作為函數(shù)的參數(shù)的優(yōu)缺點

    這篇文章主要介紹了使用JSON作為函數(shù)的參數(shù)的優(yōu)缺點,需要的朋友可以參考下
    2016-10-10
  • Chrome中JSON.parse的特殊實現(xiàn)

    Chrome中JSON.parse的特殊實現(xiàn)

    ECMA 262 Edition5 中提供了原生的JSON支持,其中JSON.parse用來將字符串轉(zhuǎn)成成json,見ECMA 262 Edition5 15.12.2。另見:字符串轉(zhuǎn)換成json的三種方式
    2011-01-01

最新評論