转换json和字符串的一些方法

将字符串转换成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及以下浏览器不支持(其他两种没问题)
可以引进下面的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>
View Code

 

效果:
 
转换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>
View Code

 

效果:
 



 

posted @ 2017-03-25 09:28  Chen,ChunChang  阅读(326)  评论(0编辑  收藏  举报