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

來源:互聯網
上載者:User

標籤:

【轉】自:http://blog.csdn.net/semanwmj/article/details/7066306 

 

做網頁總會使用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/

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.