格式化json数据

来源:互联网 发布:opencv java 高斯模糊 编辑:程序博客网 时间:2024/05/17 03:23


var formatJson = function(json, options) { var reg = null,  formatted = '',  pad = 0,  PADDING = '';  //one can also use '\t' 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, '\r\n$1\r\n'); // add newline before and after square brackets reg = /([\[\]])/g; json = json.replace(reg, '\r\n$1\r\n'); // add newline after comma reg = /(\,)/g; json = json.replace(reg, '$1\r\n'); // remove multiple newlines reg = /(\r\n\r\n)/g; json = json.replace(reg, '\r\n'); // remove newlines before commas reg = /\r\n\,/g; json = json.replace(reg, ','); // optional formatting... if (!options.newlineAfterColonIfBeforeBraceOrBracket) {    reg = /\:\r\n\{/g;  json = json.replace(reg, ':{');  reg = /\:\r\n\[/g;  json = json.replace(reg, ':['); } if (options.spaceAfterColon) {     reg = /\:/g;  json = json.replace(reg, ': '); } $.each(json.split('\r\n'), 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 + '\r\n';  pad += indent; }); return formatted;};


0 0