下面是我写的一段实现输出JSON对象和JSONArray的实现,它不仅可以实现普通对象和数组对象的输出,也可以实现JSON对象和function方法体的输出,JSON.stringify()不能输出function方法体的内容,如果出现function,它会忽略掉,所以前端测试时用它输出会漏掉一部分function,当然这个实现也是简单的实现,并没有考虑到所有的情况,还希望大家能够多多吐槽,给点建议。
function stringify(json) {
var jsonString = "";
if (
json == null
|| json == undefined
|| typeof (json) == "string"
|| typeof (json) == "number"
|| typeof (json) == "boolean"
|| typeof (json) == "function"
) {
jsonString = json;
} else if (json instanceof Array) {
jsonString += "[";
for (var i = 0; i < json.length; i++) {
jsonString += stringify(json[i]) + ",";
}
if (json.length > 0) {
jsonString = jsonString.substring(0, jsonString.length - 1);
}
jsonString += "]";
}else {
jsonString += "{";
for (var item in json) {
if(typeof(json[item])=="string"){
jsonString += "\""+item+"\":\""+stringify(json[item])+"\",";
} else{
jsonString += "\""+item+"\":"+stringify(json[item])+",";
}
}
if(json.length>1){
jsonString = jsonString.substring (0,jsonString.length-1);
}
jsonString += "}";
}
return jsonString;
}
最近发现了一个Web前端开发的神器,很给力,WebStorm,能够智能提示,还可以格式化样式,对添加的变量和方法也能够实现提示和纠错,就是笔记本的话比较耗内存。