json转String与String转json及判断对象类型示例代码

所属分类: 网络编程 / 相关技巧 阅读数: 1270
收藏 0 赞 0 分享
复制代码 代码如下:

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>";
}
更多精彩内容其他人还在看

idea2020.1 常用设置图文详解

这篇文章主要介绍了idea2020.1 常用设置,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

IDEA2019.3在Plugins中搜索不到translation的解决

这篇文章主要介绍了IDEA2019.3在Plugins中搜索不到translation的解决,文中通过图文的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Idea 2019.3 本应该搜索到的插件却搜索不到的解决方法

这篇文章主要介绍了Idea 2019.3 本应该搜索到的插件却搜索不到,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Scala 环境搭建及IDEA工具的配置使用教程

这篇文章主要介绍了Scala 之 环境搭建 及 工具IDEA的配置使用,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

程序员喜欢的5款最佳代码比较工具

这篇文章主要介绍了程序员喜欢的5款最佳代码比较工具,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

vscode安装rainbow-fart(鼓励师)插件

这篇文章主要介绍了vscode安装rainbow-fart(鼓励师)插件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

VSCode程序猿彩虹屁插件rainbow fart体验篇

这篇文章主要介绍了VSCode程序猿彩虹屁插件rainbow fart体验,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Rust 能够取代 C 语言吗

Rust 是 Mozilla 基金会的一个雄心勃勃的项目,号称是 C 语言和 C++ 的继任者,这篇文章主要介绍了Rust 能够取代 C 语言吗的相关知识,需要的朋友可以参考下
收藏 0 赞 0 分享

vscode配置leetcode插件并解决无法登录问题(图文详解)

这篇文章主要介绍了vscode配置leetcode插件并解决无法登录问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

StringBuider 在什么条件下、如何使用效率更高

都说 StringBuilder 在处理字符串拼接上效率要强于 String,但有时候我们的理解可能会存在一定的偏差。今天小编给大家带来一篇教程关于StringBuider 在什么条件下、如何使用效率更高?感兴趣的朋友一起看看吧
收藏 0 赞 0 分享
查看更多