`

将普通对象转化为JSON对象

阅读更多
<script type="text/javascript">
function toJSONString(obj, indent) {   
    var re, indent;   
    // "||"用法
    indent = indent || "";   
    switch (typeof(obj)) {   
        // 数值,布尔,函数
        case "number" :   
        case "boolean" :   
        case "function" :   
            return (String(obj));   
            break;   
        // 字符串特殊符号处理
        case "string" :   
            return ("\""  
                    + obj.replace(/([\"\'])/g, "\\$1").replace(/\r/, "\\r")   
                            .replace(/\n/, "\\n").replace(/\t/, "\\t") + "\"");   
            break;   
        // 对象的转化
        case "object" :   
            switch (obj.constructor) {   
                case Date :   
                    return ("new Date(\"" + obj.toUTCString() + "\"))");   
                    break;   
                case RegExp :   
                    return ("(new RegExp(\""  
                            + String(obj.source.replace(/(\w)/g, "\\$l")   
                                    + "\",\"" + (obj.global ? "g" : "")   
                                    + (obj.ignoreCase ? "i" : "")   
                                    + obj.multiline ? "m" : "") + "\"))");   
                    break;   
                case Array :   
                    re = new Array();   
                    for (var i = 0; i < obj.length; i++) {   
                        re.push(toJSONString(obj[i]));   
                    }   
                    return ("[" + re.join(",") + "]");   
                    break;   
                default :   
                    re = new Array();   
                    for (var i in obj)   
                        re.push(indent + "\t" + toJSONString(i, "\t" + indent)   
                                + ":" + toJSONString(obj[i], "\t" + indent));   
                    return ("{\r\n" + re.join(",\r\n") + "\r\n" + indent + "}");   
  
                    break;   
            }   
    }   
}   
// 测试
var obj = new Object();   
obj.sb = "caonima";   
obj.nb = "caoniba";   
obj.func = function() {   
    alert("caonima");   
}   
var str = toJSONString(obj);
// 将JSON字符串转为对象
eval("newObj=" + str);
alert(newObj.sb);
</script>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics