一、字符串转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"