Rekey's WebSpace

Just So So ...

Home Develop Life Music News 关于

json2string代码

作者:Rekey 发布时间:September 3, 2009 分类:Develop No Comments

今天跟javascript森林讨论关于json2string的问题.本来是想偷懒让别人写的.结果还是自己上了.orz啊.

  1. 用length来区分array和object有问题。
  2. 对数组的的解析,只考虑了一维,而且[{},{},{}]这种情况也没考虑
用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()+'}';
}
标签 : javascript, json, string
1