javascript基礎。Json文法講解和應用

來源:互聯網
上載者:User

} JSON (JavaScript Object Notation) 是一種輕量級的資料交換格式,易於人閱讀和編寫,同時也易於機器解析和產生,而且它是基於JavaScript 的。 JSON採用完全獨立於語言的文字格式設定,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript 等)。這些特性使JSON成為理想的資料交換語言

} JSON有兩種結構:

◦       “名/值”對的集合(A collection of name/value pairs)。在不同的語言中,它被理解為對象,結構,關聯陣列等

◦       值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組

這些都是常見的資料結構。事實上大部分現代電腦語言都以某種形式支援它們。這使得一種資料格式在同樣基於這些結構的程式設計語言之間交換成為可能

下面的JSON表示成對的名稱和數值:

{ "firstName": "Brett" }

多個名稱/值對串在一起:這是一個對象,有三個屬性,分別是firstNamelastNameemail

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }

從文法方面來看,這與成對的名稱和數值相比並沒有很大的優勢,但是在這種情況下 JSON

更容易使用,而且可讀性更好

當需要表示一組值時,JSON 不但能夠提高可讀性,而且可以減少複雜性:

{ “employees": [

 { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },

 { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },

 { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }

] }

這比相應的XML格式表示的資料更加簡潔:

相應的XML格式:

<employees>

< employee >

<firstName>Brett</firstName>

<lastName>McLaughlin</lastName>

<email>brett@newInstance.com</email>

</ employee >

< employee >

<firstName>Jason</firstName>

<lastName>Hunter</lastName>

<email>jason@servlets.com</email>

</ employee >

< employee >

<firstName>Elliotte</firstName>

<lastName>Harold</lastName>

<email>elharo@macfaq.com</email>

</employee>

</ employees >

 

} 可讀性

◦       JSON和XML的可讀性可謂不相上下,XML略佔上風

} 可擴充性

◦       XML天生有很好的擴充性,JSON當然也有,沒有什麼是XML能擴充,JSON不能的。

} 編碼難度

◦       XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的編碼明顯比XML容易許多,即使不藉助工具也能寫出JSON的代碼,可是要寫好XML就不太容易了

} 解碼難度

◦       XML的解析得考慮子節點父節點關係,讓人頭昏眼花,而JSON的解析難度幾乎為零。

} 流行度

◦       XML已經被業界廣泛的使用,而JSON才剛剛開始,但在Ajax領域,JSON憑藉自身的優勢有可能最終取代XML

JSON是JavaScript原生格式,這意味著在JavaScript中處理JSON資料不需要任何特殊的 API 或工具包。

} 將JSON資料賦值給變數:

var company =

{ “employees": [

        { "firstName": "Brett", "lastName":"McLaughlin", "email": brett@newInstance.com" },

        { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },

        { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }

     ]

};這樣將建立一個JavaScript對象

以JavaScript對象的方式訪問資料,如擷取第一個僱員的firstName資訊:

◦       company.employees[0].fristName

正如可以用點號和括弧訪問資料,也可以按照同樣的方式輕鬆地修改資料:

◦       company.employees[0].fristName=“Vincent”

伺服器端返回JSON相應的文本表示,如:

◦       {“city” : “Hefei”, “province” : “Anhui”}

用戶端使用eval()函數將JSON文本轉化為JavaScript對象:

Var response =eval(”(”+request.responseText+”)”);

注意,使用額外的圓括弧可使eval()函數將來源輸入無條件地視為運算式進行解析。

然後從JavaScript對象中取得相應的值:

Document.getElementById(“city”).value=response.city;

Document.getElementById(“province”).value=response. province;

 

 

 

 

 

 

 

 

通過ajax訪問遠程頁面,該頁面傳回值

if (isok)

                Response.Write( "{result:'success'}");

            else

                Response.Write( "{result:'failed'}");

 

==========調用返回的值----------------------------

var fnCallBack = function(oResult) {

              var oDiv = document.getElementById("divLoading");

               if (oDiv) {

                  oDiv.innerHTML = "";}

              var res = eval("("+oResult+")");

              if (res.result == "success")

                 alert("ok");

              else

                 alert("帳號或密碼錯誤,請重試!");

 

           }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.