您的位置:首页 > Web前端 > JavaScript

使用递归实现JSON对象转字符串

2013-02-16 09:41 435 查看
function jsonToStr(json){
if(json instanceof Array){ //如果是数组
var tmpArr = [];
for(var i=0;i<json.length;i++){
tmpArr.push(jsonToStr(json[i])); //递归
}
return '['+tmpArr.join(",")+']'; //如果json是数组,那么最终会return这个
}else if(json instanceof Object){ //如果是对象
var tmpArr = [];
for(var n in json){
tmpArr.push('"'+n+'":'+jsonToStr(json
)); //递归
}
return '{'+tmpArr.join(",")+'}'; //如果json是对象,那么最终会return这个
}else if(typeof json == 'string'){ //如果是字符串
return '"'+json.replace(/(\\|\")/g,"\\$1").replace(/\n/g,"\\n")+'"'; //如果json是字符串,就过滤掉斜杠、双引号、换行再返回
}else{
return json; //否则就原样返回
}
}

使用:

var obj = [{a:5,b:6},{a:"sss",b:"hhh"}]

console.log(jsonToStr(obj))

结果会输出:[{"a":5,"b":6},{"a":"sss","b":"hhh"}]

var obj = {a:5,b:6}

console.log(jsonToStr(obj))

结果会输出:{"a":5,"b":6}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐