json转String与String转json及判断对象类型示例代码
function ajaxgetmenulist(){
$.getjson("login.do", function(json){
var r = "";
znodes += "[";
$(json.menulist).each(function(i){
r = json.menulist[i];
if(i>0) znodes += ",";
znodes += '{';
znodes += 'id:'+r.sid;
znodes += ', pid:'+r.spid;
znodes += ', name:"'+r.stitle;
if(r.spid == 0) znodes += '", open:true';
else znodes += '"';
znodes += '}';
})
znodes += "]";
znodes = stringtojson(znodes);
createtree(znodes);
});
}
/**
* json转string
* @param {object} obj
* @memberof {typename}
* @return {typename}
*/
function jsontostring (obj){
var this = this;
switch(typeof(obj)){
case 'string':
return '"' + obj.replace(/(["\\])/g, '\\$1') + '"';
case 'array':
return '[' + obj.map(this.jsontostring).join(',') + ']';
case 'object':
if(obj instanceof array){
var strarr = [];
var len = obj.length;
for(var i=0; i<len; i++){
strarr.push(this.jsontostring(obj[i]));
}
return '[' + strarr.join(',') + ']';
}else if(obj==null){
return 'null';
}else{
var string = [];
for (var property in obj) string.push(this.jsontostring(property) + ':' + this.jsontostring(obj[property]));
return '{' + string.join(',') + '}';
}
case 'number':
return obj;
case false:
return obj;
}
}
/**
* string转json
* @param {object} obj
* @return {typename}
*/
function stringtojson(obj){
return eval('(' + obj + ')');
}
//判断对象类型
function gettype(x){
if(x==null){
return "null";
}
var t= typeof x;
if(t!="object"){
return t;
}
var c=object.prototype.tostring.apply(x);
c=c.substring(8,c.length-1);
if(c!="object"){
return c;
}
if(x.constructor==object){
return c
}
if("classname" in x.prototype.constructor
&& typeof x.prototype.constructor.classname=="string"){
return x.constructor.prototype.classname;
}
return "<unknown type>";
}
如对本文有疑问,
点击进行留言回复!!
相关文章:
-
-
Docker 架构简介
docker 包括三个基本概念: 镜像(image):docker 镜像(image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16....
[阅读全文]
-
-
-
油猴脚本编写教程详解
油猴脚本(tampermonkey)是一个非常流行的浏览器扩展,它可以运行由广大社区编写的扩展脚本,来实现各式各样的功能,常见的去广告、修改样式文件、甚至是下载...
[阅读全文]
-
vscode常用插件整理汇总
1.auto close taghtml自动补全标签2.beautiful ui32个主题集合,具体使用看个人喜好。3.better comments通过使用警...
[阅读全文]
-
-
-
-
-
网友评论