// Example usage: http://jsfiddle.net/q2gnX/var formatJson = function(json, options) {var reg = null,formatted = \'\',pad = 0,PADDING = \' \'; // one can also use \'\t\' or a different number of spaces// optional settingsoptions = options || {};// remove newline where \'{\' or \'[\' follows \':\'options.newlineAfterColonIfBeforeBraceOrBracket = (options.newlineAfterColonIfBeforeBraceOrBracket === true) ? true : false;// use a space after a colonoptions.spaceAfterColon = (options.spaceAfterColon === false) ? false : true;// begin formatting...if (typeof json !== \'string\') {// make sure we start with the JSON as a stringjson = JSON.stringify(json);} else {// is already a string, so parse and re-stringify in order to remove extra whitespacejson = JSON.parse(json);json = JSON.stringify(json);}// add newline before and after curly bracesreg = /([\{\}])/g;json = json.replace(reg, \'\r\n$1\r\n\');// add newline before and after square bracketsreg = /([\[\]])/g;json = json.replace(reg, \'\r\n$1\r\n\');// add newline after commareg = /(\,)/g;json = json.replace(reg, \'$1\r\n\');// remove multiple newlinesreg = /(\r\n\r\n)/g;json = json.replace(reg, \'\r\n\');// remove newlines before commasreg = /\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;};
使用方法:
var json={"name":"HTL","sex":"男","age":"24"};console.log(formatJson(json));
//该代码片段来自于: http://www.sharejs.com/codes/javascript/5452