Javascript json object 与 string 相互转换

JS json object 与 string 相互转换 object 转 stirng
function obj2str(o){
   var r = [];
   if(typeof o == "string" || o == null) {
     return o;
   }
   if(typeof o == "object"){
     if(!o.sort){
       r[0]="{"
       for(var i in o){
         r[r.length]=i;
         r[r.length]=":";
         r[r.length]=obj2str(o[i]);
         r[r.length]=",";
       }
       r[r.length-1]="}"
     }else{
       r[0]="["
       for(var i =0;i<o.length;i++){
         r[r.length]=obj2str(o[i]);
         r[r.length]=",";
       }
       r[r.length-1]="]"
     }
     return r.join("");
   }
   return o.toString();
}

string 转 object

function taoRan(){
var str='{"result": [["提现", "219"], ["提现银行", "121"], ["退款", "272"], ["提现失败", "16"], ["团购", "15"], ["淘宝", "412"],["台湾", "58"], ["提现限额", "16"], ["提现时间", "81"], ["台湾认证", "26"]]}';
alert(strToObj(str).result[2]);
}

function strToObj(json){ 
         return eval("("+json+")"); 
}

--------------------------------------------------------------------------------------------------------------------------------

非常好用的JsonToString方法
//'
Jsontostring代码 
function JsonToString(o) {    
    var arr = []; 
    var fmt = function(s) { 
        if (typeof s == 'object' && s != null) return JsonToStr(s); 
        return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s; 
    } 
    for (var i in o) 
         arr.push("'" + i + "':" + fmt(o[i])); 
    return '{' + arr.join(',') + '}'; 

 
 
我反正用的很爽,哈哈
另外: 如果不想json中的数字也被字符串化. 可以改造: return /^(string|number)$/.test(typeof s) ? '"' + s + '"' : s; 为 : return /^(string)$/.test(typeof s) ? '"' + s + '"' : s; (其实就是把number类型的忽略掉而已) 

-------------------------------------------------------------------------------------------------------------------------------- 

function O2String(O) {
            //return JSON.stringify(jsonobj); 
            var S = [];
            var J = "";
            if (Object.prototype.toString.apply(O) === '[object Array]') {
                for (var i = 0; i < O.length; i++)
                    S.push(O2String(O[i]));
                J = '[' + S.join(',') + ']';
            }
            else if (Object.prototype.toString.apply(O) === '[object Date]') {
                J = "new Date(" + O.getTime() + ")";
            }
            else if (Object.prototype.toString.apply(O) === '[object RegExp]' || Object.prototype.toString.apply(O) === '[object Function]') {
                J = O.toString();
            }
            else if (Object.prototype.toString.apply(O) === '[object Object]') {
                for (var i in O) {
                    O[i] = typeof (O[i]) == 'string' ? '"' + O[i] + '"' : (typeof (O[i]) === 'object' ? O2String(O[i]) : O[i]);
                    S.push('"' + i + '":' + O[i]);
                }
                J = '{' + S.join(',') + '}';
            }
            return J;

        };  

 

 -------------------------------------------------------------------------------------------------------------------------------- 

 

JSON.stringify(jsonobj) 

 

JSON.stringify(jsonobj),本来是最简便的方法,可是存在浏览器兼容问题(仅适用于IE8+,Chrome 1+,FF 3+) 

 

posted @ 2012-11-06 15:07  zagelover  阅读(17524)  评论(0编辑  收藏  举报