JSONViewer,一个页面格式化多条JSON

185 阅读2分钟

一、痛点

日常开发中,在F12控制台里查看大段JSON实在憋屈。找了个在线格式化JSON的网站,打开一看全是广告,可操作区域太小,无法大快朵颐

1.png

二、尝试解决

准备把他代码扒下来,去掉广告,仅保留编辑器部分。实际可太难了,他们代码都混淆了,可读性没有,更别说改了

2.png

4.png

1万多行压缩代码,实在是搞不动

三、柳暗花明

既然国内找不到,就用英文搜下:Format JSON Online,发现靠前的网站用的都是 JSONEditor 这个编辑器

开源免费、API友好。且界面简洁、美观,功能还很强大。画个页面,把编辑器嵌进来试试

<!DOCTYPE html>
<html lang="en">

<head>
    <title>test page</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <link rel="stylesheet" type="text/css" href="dist/jsoneditor.min.css">
    <script type="text/javascript" src="dist/jsoneditor.min.js"></script>
    <style type="text/css">
        #container {
            width: 500px;
            height: 600px;
        }
    </style>
</head>

<body>
    <div id="container"></div>

    <script type="text/javascript">
        var container = document.getElementById('container');
        var options = {
            mode: 'code',
            onError: function (err) {
                alert(err.toString());
            }
        };
        var editor = new JSONEditor(container, options);
    </script>
</body>

</html>

看看效果

5.png

这个编辑器自带:JSON格式化、压缩和转义功能,无需自己实现。看右边还有空间,就加了几个功能:清除、复制、粘贴、下载。并且多new了几个编辑器

6.png

最多支持几个编辑器同时使用,是根据显示器分辨率来的

function getMaxBoxCount() {
    var screenWidth = $(window).width();

    var maxBoxCount = 0;
    if (screenWidth < 1024) {
        maxBoxCount = 1;
    }
    else if (screenWidth >= 1024 && screenWidth < 1920) {
        maxBoxCount = 2;
    }
    else if (screenWidth >= 1920 && screenWidth < 2560) {//1080p
        maxBoxCount = 3;
    }
    else if (screenWidth >= 2560 && screenWidth < 3840) {//2k
        maxBoxCount = 4;
    }
    else if (screenWidth >= 3840 && screenWidth < 5120) {//4k
        maxBoxCount = 5;
    }
    else if (screenWidth >= 5120) {//5k
        maxBoxCount = 6;
    }
    return maxBoxCount;
}

现在主流是1080P显示器,支持3个编辑器,不管是查看还是对比JSON,基本满足需求了

最后动图展示

7.gif

四、源码

JSONViewer

五、下载

做成网站麻烦,直接以浏览器插件的形式运行,离线也可以使用

Chrome:chrome.google.com/webstore/de…

Firefox:addons.mozilla.org/zh-CN/firef…

Edge:microsoftedge.microsoft.com/addons/deta…

360安全浏览器:ext.se.360.cn/webstore/de…

360极速浏览器:ext.chrome.360.cn/webstore/de…