这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
这篇文章主要介绍了 javascript 格式化 json 显示, 实例分析了 javascript 操作 json 格式化的相关技巧, 非常具有实用价值, 需要的朋友可以参考下
本文实例讲述了 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, '\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;
- };
关于 json 格式化感兴趣的朋友还可参考在线工具:
希望本文所述对大家的 javascript 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0718/271675.html