Browse Source

优化json格式化功能

star7th 7 years ago
parent
commit
390c0652c0
1 changed files with 3 additions and 40 deletions
  1. 3 40
      web_src/src/components/common/JsonBeautify.vue

+ 3 - 40
web_src/src/components/common/JsonBeautify.vue

@@ -33,52 +33,15 @@ export default {
   	transform(){
   		var data = this.content;
 		try {
-		  data = data.replace(/(^\s*)|(\s*$)/g, "");
-		  var op1 = data.substr(0, 1) == "[" ? "[" : "{";
-		  var  op2 = (op1 == "[") ? "]" : "}";
-		  var text = "\n ``` \n " + op1 + " \n" + this.dump(JSON.parse(data)) + " " + op2 + " \n\n ```\n\n"; //整体加个大括号
+		  var formattedStr = JSON.stringify(JSON.parse(data), null, 2);
+		  var text = "\n ``` \n " + formattedStr + " \n\n ```\n\n"; //
 		  this.callback(text);
 		} catch (e) {
 		  //非json数据直接显示
 		  this.callback(data);
 		}
   		this.dialogFormVisible = false;
-  	},
-
-  dump(arr, level) {
-		var dumped_text = "";
-		if (!level) level = 0;
-
-		//The padding given at the beginning of the line. 
-		var level_padding = "";
-		for (var j = 0; j < level + 1; j++) level_padding += "     ";
-		if (typeof(arr) == 'object') { //Array/Hashes/Objects 
-		var i = 0;
-		for (var item in arr) {
-		var value = arr[item];
-		if (typeof(value) == 'object') { //If it is an array, 
-		  dumped_text += level_padding + "\"" + item + "\" : \{ \n";
-		  dumped_text += this.dump(value, level + 1);
-		  dumped_text += level_padding + "\}";
-		} else {
-		  if (typeof(value) == "number") {
-		    dumped_text += level_padding + "\"" + item + "\" : " + value ;
-		  }else{
-		    dumped_text += level_padding + "\"" + item + "\" : \"" + value + "\"";
-		  }
-		}
-		if (i < Object.getOwnPropertyNames(arr).length - 1) {
-		  dumped_text += ", \n";
-		} else {
-		  dumped_text += " \n";
-		}
-		i++;
-		}
-		} else { //Stings/Chars/Numbers etc. 
-		dumped_text = "===>" + arr + "<===(" + typeof(arr) + ")";
-		}
-		return dumped_text;
-	}
+  	}
   }
 }
 </script>