JSON數據可視化

背景:

有時候咱們須要將json數據直接顯示在頁面上(好比在作一個接口測試的項目,須要將接口返回的結果直接展現),可是若是直接顯示字符串,不方便查看。須要格式化一下。javascript

解決方案:

其實JSON.stringify自己就能夠將JSON格式化,具體的用法是:css

javascriptJSON.stringify(res, null, 2); //res是要JSON化的對象,2是spacing

若是想要效果更好看,還要加上格式化的代碼和樣式:html

js代碼:java

javascriptfunction syntaxHighlight(json) {
    if (typeof json != 'string') {
        json = JSON.stringify(json, undefined, 2);
    }
    json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
    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>';
    });
}

樣式代碼:json

css<style>
    pre {outline: 1px solid #ccc; padding: 5px; margin: 5px; }
    .string { color: green; }
    .number { color: darkorange; }
    .boolean { color: blue; }
    .null { color: magenta; }
    .key { color: red; }
</style>

html代碼:測試

html<pre id="result">
</pre>

調用代碼:spa

javascript$('#result').html(syntaxHighlight(res));

效果

圖片描述

相關文章
相關標籤/搜索