zoukankan      html  css  js  c++  java
  • Js格式化json字符串

    var formatJson = function(json, options) {
        var reg = null,
            formatted = '',
            pad = 0,
            PADDING = '    '; // one can also use '	' or a different number of spaces
      
        // optional settings
        options = options || {};
        // remove newline where '{' or '[' follows ':'
        options.newlineAfterColonIfBeforeBraceOrBracket = (options.newlineAfterColonIfBeforeBraceOrBracket === true) ? true : false;
        // use a space after a colon
        options.spaceAfterColon = (options.spaceAfterColon === false) ? false : true;
      
        // begin formatting...
        if (typeof json !== 'string') {
            // make sure we start with the JSON as a string
            json = JSON.stringify(json);
        } else {
            // is already a string, so parse and re-stringify in order to remove extra whitespace
            json = JSON.parse(json);
            json = JSON.stringify(json);
        }
      
        // add newline before and after curly braces
        reg = /([{}])/g;
        json = json.replace(reg, '
    $1
    ');
      
        // add newline before and after square brackets
        reg = /([[]])/g;
        json = json.replace(reg, '
    $1
    ');
      
        // add newline after comma
        reg = /(\,)/g;
        json = json.replace(reg, '$1
    ');
      
        // remove multiple newlines
        reg = /(
    
    )/g;
        json = json.replace(reg, '
    ');
      
        // remove newlines before commas
        reg = /
    \,/g;
        json = json.replace(reg, ',');
      
        // optional formatting...
        if (!options.newlineAfterColonIfBeforeBraceOrBracket) {        
            reg = /:
    {/g;
            json = json.replace(reg, ':{');
            reg = /:
    [/g;
            json = json.replace(reg, ':[');
        }
        if (options.spaceAfterColon) {         
            reg = /:/g;
            json = json.replace(reg, ': ');
        }
      
        $.each(json.split('
    '), function(index, node) {
            var i = 0,
                indent = 0,
                padding = '';
      
            if (node.match(/{$/) || node.match(/[$/)) {
                indent = 1;
            } else if (node.match(/}/) || node.match(/]/)) {
                if (pad !== 0) {
                    pad -= 1;
                }
            } else {
                indent = 0;
            }
      
            for (i = 0; i < pad; i++) {
                padding += PADDING;
            }
      
            formatted += padding + node + '
    ';
            pad += indent;
        });
      
        return formatted;
    };
    

    var str1 = '{ "name": "xiaol", "sex": "man" }'; 

    formatJson(str1)

    {
      "name": "xiaol",
      "sex": "man"
    }

  • 相关阅读:
    5213 Exp3 免杀原理与实践
    20155213实验二 后门原理与实践
    20165110石钰网络对抗免考报告_WIFI破解+搭建钓鱼WIFI
    Exp9 Web安全基础 20165110
    Exp8:Web基础 20165110
    Exp7 网络欺诈防范 20165110
    Exp6 信息搜集与漏洞扫描 20165110
    Exp5 MSF基础应用 20165110
    Exp4 恶意代码分析 20165110
    Exp3 免杀原理与实践 20165110
  • 原文地址:https://www.cnblogs.com/413xiaol/p/6771194.html
Copyright © 2011-2022 走看看