亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言

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

JSON.stringify 函數(shù)

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

語(yǔ)法

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

參數(shù)

value

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

replacer

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

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

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

space

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

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

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

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

     如果 space 是長(zhǎng)度大于 10 個(gè)字符的字符串,則使用前 10 個(gè)字符。

返回值

一個(gè)包含 JSON 文本的字符串。

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

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

基本就是這么個(gè)原理啦,請(qǐng)看代碼實(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é)

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

相關(guān)文章

  • JSON輔助格式化處理方法

    JSON輔助格式化處理方法

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

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

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

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

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

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

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

    ASP Json Parser修正版

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論