字符串与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"