A5下载文章资讯

分类分类

javascript格式化json显示实例分析

2015-04-21 16:21作者:zhao

本文实例讲述了javascript格式化json显示方法。分享给大家供大家参考。具体分析如下:

将json对象或者json字符串格式化方便在网页上限制

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, 'rn$1rn');

// add newline before and after square brackets

reg = /([[]])/g;

json = json.replace(reg, 'rn$1rn');

// add newline after comma

reg = /(,)/g;

json = json.replace(reg, '$1rn');

// remove multiple newlines

reg = /(rnrn)/g;

json = json.replace(reg, 'rn');

// remove newlines before commas

reg = /rn,/g;

json = json.replace(reg, ',');

// optional formatting...

if (!options.newlineAfterColonIfBeforeBraceOrBracket) {

reg = /:rn{/g;

json = json.replace(reg, ':{');

reg = /:rn[/g;

json = json.replace(reg, ':[');

}

if (options.spaceAfterColon) {

reg = /:/g;

json = json.replace(reg, ': ');

}

$.each(json.split('rn'), 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 + 'rn';

pad += indent;

});

return formatted;

};

希望本文所述对大家的javascript程序设计有所帮助。

展开全部

相关

说两句网友评论
    我要跟贴
    取消