json轉(zhuǎn)String與String轉(zhuǎn)json及判斷對象類型示例代碼
更新時(shí)間:2013年10月29日 17:25:23 作者:
正如標(biāo)題所言json轉(zhuǎn)String和String轉(zhuǎn)json以及判斷對象類型,在網(wǎng)上會(huì)搜到很多的相關(guān)文章,不過大都介紹的籠統(tǒng),下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下
復(fù)制代碼 代碼如下:
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轉(zhuǎn)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轉(zhuǎn)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>";
}
相關(guān)文章
文章中優(yōu)酷視頻全屏及去除廣告在線轉(zhuǎn)換
很多網(wǎng)站發(fā)表了引用優(yōu)酷視頻不能全屏,或一點(diǎn)全屏又跳到官方網(wǎng)了,結(jié)果又要重新緩沖。用戶體驗(yàn)特別不好。2010-09-09
windows下Idea使用git clone failed. Could not read from remote r
這篇文章主要介紹了windows下Idea使用git clone failed. Could not read from remote repository.,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
windows 中 \r\n 區(qū)別于 類unix中的\n 疑問理解(crlf回車換行)
windows 中 \r\n 區(qū)別于 類unix中的\n 疑問 迎刃而解,需要的朋友可以參考下。2011-08-08
如何用idea+gitee來團(tuán)隊(duì)合作開發(fā)項(xiàng)目的教程
這篇文章主要介紹了如何用idea+gitee來團(tuán)隊(duì)合作開發(fā)項(xiàng)目,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
idea集成Git實(shí)現(xiàn)團(tuán)隊(duì)合作分工的原理詳解
這篇文章主要介紹了idea集成Git實(shí)現(xiàn)團(tuán)隊(duì)合作分工的原理,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-12-12
從0到1搭建后端架構(gòu)的演進(jìn)(MVC,服務(wù)拆分,微服務(wù),領(lǐng)域驅(qū)動(dòng))
來騰訊之前在前公司做了3年的后端開發(fā),經(jīng)歷一款SaaS產(chǎn)品從0到10(還沒有到100, 哈哈哈)的過程,3年間后端的架構(gòu)逐步演變,在微服務(wù)的實(shí)踐過程中遇到的問題也越來越多,在這里總結(jié)下2021-08-08

