简单一招实现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));
复制代码

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

是不是简单而又实用呢~


本文转自吕大豹博客园博客,原文链接:http://www.cnblogs.com/lvdabao/p/4662612.html,如需转载请自行联系原作者

相关文章
|
JSON NoSQL MongoDB
分布式服务器框架之Servers.Core库中实现MongoDB的ObjectId和Json转换
分布式服务器框架之Servers.Core库中实现MongoDB的ObjectId和Json转换
|
JSON 算法 数据安全/隐私保护
Python:使用PyJWT实现JSON Web Tokens加密解密
Python:使用PyJWT实现JSON Web Tokens加密解密
247 0
|
SQL 存储 JSON
PolarDB 开源版通过 parray_gin 实现高效率 数组、JSON 内元素的模糊搜索
PolarDB 的云原生存算分离架构, 具备低廉的数据存储、高效扩展弹性、高速多机并行计算能力、高速数据搜索和处理; PolarDB与计算算法结合, 将实现双剑合璧, 推动业务数据的 价值产出, 将数据变成生产力. 本文将介绍PolarDB 开源版通过 parray_gin 实现高效率 数组、JSON 内元素的模糊搜索
244 0
|
存储 JSON 算法
Json字段选取器介绍和实现
Json字段选取器介绍和实现
188 0
Json字段选取器介绍和实现
|
存储 JSON 数据库
使用jackson的@JsonProperty()进行字段修改成自己想要的,并实现json字符串和list集合相互转换
使用jackson的@JsonProperty()进行字段修改成自己想要的,并实现json字符串和list集合相互转换
621 0
使用jackson的@JsonProperty()进行字段修改成自己想要的,并实现json字符串和list集合相互转换
|
JSON JavaScript 网络安全
DOM转JSON的实现
DOM转JSON的实现
DOM转JSON的实现
|
JSON 缓存 搜索推荐
手写JAVA实现个性化业务的Excel转JSON,效率提高99.99%
由JSON数据的格式可以看出,每读取一个目录数据,都可以看成一个JSONObject,JSONObject有两个键值对,text代表目录的名字、children代表子目录。 一个父目录可以有多个子目录,所以children用的JSONArray去表示。
503 0
手写JAVA实现个性化业务的Excel转JSON,效率提高99.99%
|
JSON JavaScript 前端开发
javascript实现省市区三级联动选择的代码(数据为模拟json数据)
javascript实现省市区三级联动选择的代码(数据为模拟json数据):
408 0
|
JSON 大数据 Scala
行政区信息_JSON 解析实现|学习笔记
快速学习行政区信息_JSON 解析实现
154 0
|
JSON 监控 前端开发
(扩展)网站流量日志分析--数据可视化-- vue 版--复杂 json 具体实现 | 学习笔记
快速学习(扩展)网站流量日志分析--数据可视化-- vue 版--复杂 json 具体实现
145 0
(扩展)网站流量日志分析--数据可视化-- vue 版--复杂  json 具体实现 | 学习笔记