Javascript中的Array(數組) 、{}(映射) 與JSON解析


做網頁總會使用javascript,使用javascript總會使用JSON。最近用到一下,就寫寫。

下面是總結:

1.將javascript中的Array和{}轉化為json字符串可以使用json2.js,源碼地址https://github.com/douglascrockford/JSON-js

2.將json字符串轉為javascript對象,可以使用javascript自帶的eval函數。

3.javascript中可以使用typeof查看變量的類型。

4.要訪問json字段,必須是對對象的訪問。

jquery實例代碼:

 1     <script type="text/javascript">
 2         $(function(){
 3             var myArray=new Array();    ///數組
 4             myArray[0]="fgh";
 5             myArray[1]="rt";
 6             myArray[2]="xc";
 7             var arrString=JSON.stringify(myArray);    //將myArray對象轉化為字符串
 8             alert(arrString);    //["fgh","rt","xc"]
 9             var obj1=eval("("+arrString+")");    ///eval將字符串轉為json對象,注意在兩邊加上"("和")"
10             alert("數組第1個元素"+obj1[0]);
11 
12             var myMap = {};    //對象
13             myMap['name'] = "lxd";
14             myMap['age'] = 20;
15             myMap['content'] = myArray;    
16             var mapString=JSON.stringify(myMap);    ///將myMap對象轉化為字符串
17             alert(mapString);    ///{"name":"lxd","age":20,"content":["fgh","rt","xc"]}
18             var obj2=eval("("+mapString+")");
19             alert("map中的name字段:"+obj2.name);
20         });
21     </script>

 為什么eval("("+mapString+")")

  eval本身的問題。 由於json可能是以”{}”的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表達式。

  加上圓括號的目的是迫使eval函數在處理JavaScript代碼的時候強制將括號內的表達式(expression)轉化為對象,而不是作為語句(statement)來執行。

參考:

http://www.cnblogs.com/myjavawork/archive/2011/03/10/1979279.html

http://www.cnblogs.com/lidabo/archive/2011/12/29/2305770.html

http://www.sojson.com/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM