json2string代码
今天跟javascript森林讨论关于json2string的问题.本来是想偷懒让别人写的.结果还是自己上了.orz啊.
- 用length来区分array和object有问题。
- 对数组的的解析,只考虑了一维,而且[{},{},{}]这种情况也没考虑
用length来区分array和object有问题。
用json instanceof Array解决了
额,第二个问题算解决了..第一个问题,明天继续google再修改下吧.
javascript代码:
function json2str(json){
var arr = [];
if(json instanceof Array && typeof(json) == 'object'){
for(var i = 0 , len = json.length; i < len;i++){
if(typeof(json[i]) == 'object'){
arr.push(json2str(json[i]));
}else{
arr.push('"' + json[i] + '"')
}
}
}else{
for (i in json) {
if (typeof(json[i]) == 'object') {
if (!json[i].length) {
arr.push('"' + i + '":' + json2str(json[i]));
}
else {
var arr2 = [];
for (j in json[i]) {
if(typeof(json[i][j]) == 'object'){
arr2.push(json2str(json[i][j]))
}else{
arr2.push('"' + json[i][j] + '"')
}
}
arr.push('"' + i + '":[' + arr2.toString() + ']');
}
}
if (typeof(json[i]) == 'string') {
arr.push('"' + i + '":"' + json[i] + '"');
}
};
}
return '{'+arr.toString()+'}';
}