json字符串格式化

    var str = '{"id":12, "name":"張三","data":{"id2":12, "name2":"張三","data":{"id3":12, "name3":"張三"}}, "addr":"火星基地"}';
		
		//換行符號、空格符號
		var hh = "\n";
		var trimF = ' ';
		var trimF2 = '    ';
		
		//格式化顯示json數據
		function formatJsonToStr(str){
			
			var html = '{' + "\n"; 
			var jsonData = eval('(' + str + ')');
			var jsonLength = getJsonLength(jsonData);
			var i = 0;
			for(var key in jsonData){
				i++;
				html += formatData(key, jsonData[key]);
				if(jsonLength != i){
					html += "," + "\n";
				}
			}
			html += "\n" + '}' ;
			return html;
		}
		
		//格式化數據
		function formatData(key, currObject){
			
			var html = '';
			var type = typeof(currObject);
			if(type == 'string' || type == 'number'){
				html += '    ' + key + ':"' + currObject + '"';;
			}else if(type == 'object'){
				
				html += '    ' + key + ' :   {' + "\n";
				var jsonLength = getJsonLength(currObject);
				var i = 0;
				for(var currKey in currObject){
					i++;
					var currData = currObject[currKey];
					html += formatData(currKey, currData);
					if(jsonLength != i){
						html += "," + "\n";
					}
				}
				html += "\n" + '    ' + '}' ;
			}
			return html;
		}
		
		//得到json長度
		function getJsonLength(jsonData){
		
			var jsonLength = 0;
			for(var item in jsonData){
				jsonLength++;
			}
			return jsonLength;
		}
		alert(formatJsonToStr(str));

將上圖格式化成下面 html

相關文章
相關標籤/搜索