您现在的位置是:首页 > 个人博客个人博客

JavaScript自动格式化json格式数据

龙沐星2019-12-07【个人博客】59078人已围观

简介JavaScript自动格式化json函数: //自动格式化json function format(txt, compress/*是否为压缩模式*/) {/* 格式化JSON源码(对象转换为JSON文本) */

JavaScript自动格式化json函数:

		//自动格式化json
		function format(txt, compress/*是否为压缩模式*/) {/* 格式化JSON源码(对象转换为JSON文本) */
		var indentChar = '    ';
		if (/^\s*$/.test(txt)) {
		alert('数据为空,无法格式化! ');
		return;
		}
		try {
		var data = eval('(' + txt + ')');
		}
		catch (e) {
		alert('数据源语法错误,格式化失败! 错误信息: ' + e.description, 'err');
		return;
		}
		;
		var draw = [], last = false, This = this, line = compress ? '' : '\n', nodeCount = 0, maxDepth = 0;
		var notify = function(name, value, isLast, indent/*缩进*/, formObj) {
		nodeCount++;/*节点计数*/
		for (var i = 0, tab = ''; i < indent; i++)
		tab += indentChar;/* 缩进HTML */
		tab = compress ? '' : tab;/*压缩模式忽略缩进*/
		maxDepth = ++indent;/*缩进递增并记录*/
		if (value && value.constructor == Array) {/*处理数组*/
		draw.push(tab + (formObj ? ('"' + name + '":') : '') + '[' + line);/*缩进'[' 然后换行*/
		for (var i = 0; i < value.length; i++)
		notify(i, value[i], i == value.length - 1, indent, false);
		draw.push(tab + ']' + (isLast ? line : (',' + line)));/*缩进']'换行,若非尾元素则添加逗号*/
		} else if (value && typeof value == 'object') {/*处理对象*/
		draw.push(tab + (formObj ? ('"' + name + '":') : '') + '{' + line);/*缩进'{' 然后换行*/
		var len = 0, i = 0;
		for (var key in value)
		len++;
		for (var key in value)
		notify(key, value[key], ++i == len, indent, true);
		draw.push(tab + '}' + (isLast ? line : (',' + line)));/*缩进'}'换行,若非尾元素则添加逗号*/
		} else {
		if (typeof value == 'string')
		value = '"' + value + '"';
		draw.push(tab + (formObj ? ('"' + name + '":') : '') + value + (isLast ? '' : ',') + line);
		}
		;
		};
		var isLast = true, indent = 0;
		notify('', data, isLast, indent, false);
		return draw.join('');
		}


很赞哦! (59078)

文章评论

  • 评论已关闭

站点信息

  • 建站时间:2015-07-29
  • 网站程序:YII 2.0
  • 文章统计:24条
  • 文章评论:59078条
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们