将字符串转换成json对象的方法:
var str = '{"name1":"value1","name2":"value2"}';(json的转换格式必须是单引号套双引号)
1.JSON.parse(str);
2.eval("("+str+")");
3.var json = (new Function("return"+str)());
将json转换成字符串:
1.JSON.stringgify(json);
兼容问题
JSON.parse()转化字符串成json对象在IE7及以下浏览器不支持(其他两种没问题)
JSON.parse()转化字符串成json对象在IE7及以下浏览器不支持(其他两种没问题)
可以引进下面的js文件解决这个问题。
强制转换:
1 <!DOCTYPE html> 2 <htmllang="en"> 3 <head> 4 <metacharset="UTF-8"/> 5 <title>Document</title> 6 </head> 7 <body> 8 </body> 9 <scripttype="text/javascript"> 10 // 不符合json转换格式的字符串 11 var string ="{'age':28,'sex':'boy'}"; 12 // 用json的强制转换方法来转换这个字符串(new Function("return"+str)()); 13 var json =(newFunction("return"+string))(); 14 console.log(json.sex); 15 var li = document.createElement("li"); 16 li.innerText="name:"+json.sex +",age:"+ json.age; 17 document.body.appendChild(li); 18 </script> 19 </html>
效果:
转换json数据的方法:
json就是对象(object),对象就是json;
1 <!DOCTYPE html> 2 <htmllang="en"> 3 <head> 4 <metacharset="UTF-8"/> 5 <title>转换json数据</title> 6 </head> 7 <body> 8 </body> 9 <scripttype="text/javascript"src="jquery-3.1.1.min.js"></script> 10 <scripttype="text/javascript"> 11 // 也是利用强制转换 12 data ="{root:[{name:'1',value:'0'},{name:'11',value:'110'},{name:'1123',value:'广东'},{name:'1124',value:'附件'}]}"; 13 console.log(data); 14 var json =(newFunction("return"+data))(); 15 console.log(json.root); 16 $.each(json.root,function(i,v){ 17 console.log(v); 18 var h = v; 19 for(key in h){ 20 console.log(h[key]); 21 var $span = $("<span></span><br/>"); 22 $span.text(h[key]); 23 $("body").append($span); 24 } 25 }); 26 </script> 27 </html>
效果: