本文主要和大家分享js格式化json的实例代码,希望能帮助到大家。
var jsonStr;// json字符串
// 格式化json字符串
var jsonFormat = formatJson(jsonStr);
// 工具方法
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...
 // make sure we start with the JSON as a string
 if (typeof json !== 'string') {
 json = JSON.stringify(json);
 }
 // parse and 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;
 };效果图
下载本文