在web开发过程中,现在JSON 已经到了俯拾皆是的地步了,操作JSON对于JS来说非常简单,那么我们对于JSON的转化是如何应对的呢?
json2.js
json2.js主要功能是做什么的? json2.js提供了json的序列化和反序列化方法,可以将一个json对象转换成json字符串,也可以将一个json字符串转换成一个json对象。 json2.js在浏览器不支持json.parse的内置方法时,最有效。json2.js会创建一个内部的全局变量,提供json对象与字符串之间的转换。
常用的eval 方法,可以将json字符串转化为js对象,不过eval不太好调试,且性能稍微有点下降,不过也还好了。 至于网上所说的安全性问题,我觉的不是很大,具体可以参考知乎,有比较详细的解答,相信各位看官能够自行理解。
如果以上两种都不满足的话,可以自行实现这些需求。 我现在用的反序列化是eval ,序列化是自己写的,下面贴出代码,各位看官顺便提出下各自的见解。
stringfy : function(obj){
if(null == obj || obj == undefined)return undefined;
if(typeof obj == 'string')return obj;
if(typeof obj =='number')return obj;
var arrParse = function(temp){
var tempstr = [];
tempstr.push('[');
for(var i=0;i<temp.length;i++){
var tempobj = temp[i];
var str = switchObj(tempobj);
tempstr.push(str);
if(i != temp.length-1){
tempstr.push(',');
}
}
tempstr.push(']');
return tempstr.join('');
};
var switchObj = function(tempobj){
if(typeof tempobj == 'object'){
if(tempobj instanceof Array){
return arrParse(tempobj);
}else if(tempobj instanceof Object){
return objParse(tempobj);
}
}else if(typeof tempobj == 'function'){
return ''+tempobj.toString()+'';
}else{
return '"'+tempobj+'"';
}
return '';
};
var objParse = function(obj){
var htmls = [];
htmls.push('{');
for(var p in obj){
var tempobj = obj[p];
var str= switchObj(tempobj);
htmls.push('"'+p+'":'+str+'');
htmls.push(',');
}
htmls.splice(htmls.length-1);
htmls.push('}');
return htmls.join('');
};
return switchObj(obj);
}
小白的写法,字符串拼接,刚接触JS ,勿喷...
转载请注明出处: https://chrunlee.cn/article/parse-json-to-string.html