關於JSON

    JSONJavaScript Object Notation是一種輕量級的數據交換語言是javascript的一個子集,而且獨立於語言的文本格式,採用了相似於C語言的一些習慣。
javascript

    JSON用於描述數據結構,有如下形式存在。
java

  •     對象 (object):一個對象以「{」開始,並以「}」退出。一個對象包含一系列非排序的名稱/值對,每一個名稱/值對之間使用「,」分區。

  •     名稱/值(collection):名稱和值之間使用「:」隔開,一個名稱是一個字符串; 一個值能夠是一個字符串,一個數值,一個對象,一個布林值,一個有串行表,或者一個null值。

  •     值的有串行表(Array):一個或者多個值用「,」分區後,使用「[」,「]」括起來就造成了這樣的列表。
  •     字符串:以""括起來的一串字符。
  •     數值:一系列0-9的數字組合,能夠爲負數或者小數。還能夠用「e」或者「E」表示爲指數形式。
  •     布林值:表示爲 true 或者 false。

    因爲 JSON 是 JavaScript 的子集,因此通常都會使用eval()做爲讀取數據的方式,若是是針對可靠的數據來源,在不支持原生 JSON 解析的瀏覽器上面這是最快速的方法。然而因爲 eval 方法一樣能夠執行任意的 JavaScript 代碼,所以當數據來源不可靠時則可能產生安全性問題。以下面的例子,直接用 eval 執行時會跳轉:var json = { message: (function () { window.location='http://zh.wikipedia.org/wiki/JSON#.E5.AE.89.E5.85.A8.E6.80.A7.E5.95.8F.E9.A1.8C'; })() };
    其中一種防止不安全代碼出現的解決辦法,是經過瀏覽器原生支持的 JSON.parse(str) 方法讀取 JSON 數據目前已經獲得大部分主流瀏覽器的支持(IE8+,Firefox 3.5+,Chrome4+/Safari4+,Opera10+),在不支持原生 JSON 對象的瀏覽器上面能夠使用parseJSON方法進行讀取,parseJSON採用解析器驗證讀入的代碼是否真的是 JSON 代碼,這樣就提供了較好的安全性。但因爲這是用模擬的方式讀取,速度上會比eval()慢。 json

1.js中數組轉字符串 var arr = ["a","b","c"];

alert(arr.join(","));    //輸出a,b,c 至關於arr.toString();

alert(arr.join("");    //輸出abc

alert(arr.join());    //什麼都不輸入,就等於用逗號將他們分割arr.join(",");也至關於arr.toString();輸出a,b,c

2.json字符串轉js對象三種方式

var json = eval('(' + str + ')');

var json = (new Function("return " + str))(); 

var json = JSON.parse(str);

3.取json中key對應的值 數組

<script type="text/javascript">  
    function getJson(key){  
        var jsonObj={"name":"傅紅雪","age":"24","profession":"刺客"};  
               //一、使用eval方法      
        var eValue=eval('jsonObj.'+key);  
        alert(eValue);  
                //二、遍歷Json串獲取其屬性  
        for(var item in jsonObj){  
            if(item==key){            //item 表示Json串中的屬性,如'name'  
                var jValue=jsonObj[item];          //key所對應的value  
                alert(jValue);  
            }  
         }  
               //三、直接獲取  
         alert(jsonObj[''+key+'']);  
     } 
     getJson('age'); 
</script>
     經過上面內容的理解,通常JSON問題都應該解決了......
瀏覽器

相關文章
相關標籤/搜索