字符串与json互转

一、字符串转json

    var str = "1:测试1-1;2:测试1-2;3:测试1-3";                   //字符串
    var str0 = str.split(';');                                 //字符串转数组[ "1:测试1-1", "2:测试1-2", "3:测试1-3" ]

    /*方法一*/                                                  //运用  $.map 跟 JSON.parse('str') 方法实现
    var str1_1 =  $.map( str0, function(value, index){
        if( typeof value === "string"){
            var str_ =  value.split(':');
           return '"'+ str_[0] + '":"' + str_[1] + '"';
        }
    })                                                         //格式化加引号Array: [ ""1":"测试1-1"", ""2":"测试1-2"", ""3":"测试1-3"" ]
    var str1_2 = "{"+ str1_1.join(',')+ "}";                   //字符串格式化string: {"1":"测试1-1","2":"测试1-2","3":"测试1-3"}
    console.log(JSON.parse(str1_2));                           //输出结果Object:{1: "测试1-1", 2: "测试1-2", 3: "测试1-3"}

    /*方法二*/                                                  // 运用 原生 forEach 跟 eval('({"+str+"})') 方法实现
    str0.forEach(function(value,index,array){                  //forEach 不兼容ie8-  可以使用方法一的 $.map 替换
        var str_=value.split(':');
        array[index]="""+str_[0]+"":""+str_[1]+""";
    });
    var str2_1=eval("({"+str0.join(',')+"})");
    console.log(str2_1);                                       //输出结果Object:{1: "测试1-1", 2: "测试1-2", 3: "测试1-3"} 

一、json 转字符串

    var obj = { "1":"测试2-1", "2":"测试2-2", "3":"测试2-3"};   //待转换json对象
    //var obj = {1: "测试2-1", 2: "测试2-2", 3: "测试2-3"};     //待转换对象

    /*方法一*/
    var obj1 ='';
    $.each(obj,function(index,value){
        obj1 += ';'+ index + ':'+ value;
    })                                                        //$.each() 拼接实现
    //for (k in obj) obj1 += ';' + k + ':' + obj[k];          //for in 拼接实现
    console.log(obj1.substring(1));                           //去掉第一个";" ,输出结果string: "1:测试2-1;2:测试2-2;3:测试2-3"

    /*方法二*/
     var obj2 = JSON.stringify(obj);                          //将对象转换为字符串,string:'{"1":"测试2-1","2":"测试2-2","3":"测试2-3"}'
     var obj2_1 = obj2.substring(1,obj2.length - 1);          //字符串,截取string: '"1":"测试2-1","2":"测试2-2","3":"测试2-3"'
     var obj2_2 = obj2_1.split(",").join(';').split('"').join('');
     console.log(obj2_2);                                     // 输出结果string:"1:测试2-1;2:测试2-2;3:测试2-3"
原文地址:https://www.cnblogs.com/ysxq/p/7549982.html