简单一招实现json数据可视化

开发一个内部功能时碰到的需求,要把json数据在页面上展示出来,平时浏览器会安装jsonView这样的扩展来看json数据,但是程序要用到的话该怎么办呢?今天在网上搜索的时候,发现了这个小技巧,分享一下。

要用到的核心是JSON.stringify这个函数,没想到吧,平时我们只把它用来序列号json数据。但是这个stringify是有三个参数的,

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

,具体描述请看这里:https://msdn.microsoft.com/library/cc836459(v=vs.94).aspx

我们要用到的就是这第三个参数,它可以指定在生成的字符串中加多少空格,从而生成有一定格式的字符串。生成的字符串我们可以放在<pre>标签中,这样就能很好的显示缩进。然后呢,为了让生成的数据有高亮效果,我们还可以写一个简单的高亮函数。基本就是这么个原理啦,请看代码实现:

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));

最终生成的效果就是这样的:

是不是简单而又实用呢~

时间: 2024-10-12 14:51:22

简单一招实现json数据可视化的相关文章

最简单简洁高效的Json数据解析

一.无图无真相 二.主要代码 1.导入jar包 拷贝fastjson.jar包到projectlibs包下 2.封装工具类JsonUtil.java package com.example.parsejsondemo; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.List; /**

简单的XML和JSON数据的处理

一.XML格式装换成json数据格式 using System; using System.Collections.Generic; using System.Linq; using System.Web; //要使用JavaScriptSerializer需添加这个using System.Web.Script.Serialization;引用 using System.Web.Script.Serialization; using System.Web.UI; using System.We

简单的jQuery解析json数据

<span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">尊重劳动成果,转载请注明出处(http://blog.csdn.net/sllailcp/article/details/41113275)...</span> 以下是摘取部分json,jQuery需自

1,最简单的树 -- 标准 JSON 数据

-----后台 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Text; public partial class _Default : System.Web.UI.Page {     protecte

JavaBean和json数据之间的转换(一)简单的JavaBean转换

1.为什么要使用json? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,因为其高性能.可读性强的原因,成为了现阶段web开发中前后端交互数据的主要数据格式 2.简单的JavaBean和json之间的转换 1)首先,我们先写一个简单的JavaBean,内容非常简单,只有name和age两个字段 1 public class Student { 2 private String name; 3 private Integer age; 4 } 2)我

数据可视化分析除了需要编码的Python,还有更简单的方式吗?

大数据.数据分析的兴起和火爆,也带动了数据可视化的广泛应用.说起数据分析和可视化的关系,就好比你为一堆散乱的拼图写了一份说明,告诉他这个数据是什么样子,代表什么.可以说,数据可视化虽然不是必不可少的,但却是可以加快效率,为报告锦上添花的.今天,说起数据可视化,我们就不得不谈一下数据可视化工具了.主要说到的这个工具也是最近在数据分析圈比较受追捧的一个软件--Python. 数据可视化分析除了需要编码的Python,还有更简单的方式吗?Python虽好,但是需要编程才能实现数据的可视化,编程对于用户

能将可视化做到简单、易懂、高效、兼具美感就是好的数据可视化

数据可视化都有一个共同的目的,那就是准确而高效.精简而全面地传递信息和知识.可视化能将不可见的数据现象转化为可见的图形符号,能将错综复杂.看起来没法解释和关联的数据,建立起联系和关联,发现规律和特征,获得更有商业价值的洞见和价值. 并且利用合适的图表直截了当且清晰而直观地表达出来,实现数据自我解释.让数据说话的目的.而人类右脑记忆图像的速度比左脑记忆抽象的文字快100万倍.因此,数据可视化能够加深和强化受众对于数据的理解和记忆. 另外图形表现数据,实际上比传统的统计分析法更加精确和有启发性.我们

数据可视化背后的秘密

数据可视化,特别是基于Web的数据可视化的时代已经到来了. 类似JavaScript的可视化库如D3.js, Rapha?l, 以及Paper.js, 以及最新浏览器所支持的如Canvas和SVG,以及使得那些过去只能由计算机专家和专业设计人员开发的复杂的可视化变得越来越简单了. 数据可视化如今成为了很多网站项目的必备功能. 而类似于Platfora, DatameerClearStory Data以及Chartio等初创公司则可以利用基于浏览器的分析平台融到数百万美元的投资. 数据可视化是数据

大数据可视化服务平台Davinci上榜2019年度最受欢迎中国开源软件

由宜信科技中心数据中台部自主研发并开源的可视化服务平台Davinci(达芬奇)入选榜单[2019年度最受欢迎中国开源软件],并在“企业软件”这一细分类目中位列第二. (Davinci上榜) (企业软件类细分榜单) (奖杯) 我们先来给大家介绍一下这个优秀的可视化服务平台——Davinci. Davinci 是一个 DVAAS(Data Visualization as a Service)平台解决方案,面向业务人员/数据工程师/数据分析师/数据科学家,致力于提供一站式数据可视化解决方案. 它既可