JSON+JavaScript處理JSON的簡(jiǎn)單例子
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。易于人閱讀和編寫(xiě)。同時(shí)也易于機(jī)器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個(gè)子集。 JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類(lèi)似于C語(yǔ)言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。
JSON建構(gòu)于兩種結(jié)構(gòu):
1、“名稱(chēng)/值”對(duì)的集合(A collection of name/value pairs)。不同的語(yǔ)言中,它被理解為對(duì)象(object),紀(jì)錄(record),結(jié)構(gòu)(struct),字典(dictionary),哈希表 (hash table),有鍵列表(keyed list),或者關(guān)聯(lián)數(shù)組 (associative array)。
2、值的有序列表(An ordered list of values)。在大部分語(yǔ)言中,它被理解為數(shù)組(array)。
這些都是常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)。事實(shí)上大部分現(xiàn)代計(jì)算機(jī)語(yǔ)言都以某種形式支持它們。這使得一種數(shù)據(jù)格式在同樣基于這些結(jié)構(gòu)的編程語(yǔ)言之間交換成為可能。
JSON具有以下這些形式:
•對(duì)象是一個(gè)無(wú)序的“‘名稱(chēng)/值'對(duì)”集合。一個(gè)對(duì)象以“{”(左括號(hào))開(kāi)始,“}”(右括號(hào))結(jié)束。每個(gè)“名稱(chēng)”后跟一個(gè)“:”(冒號(hào));“‘名稱(chēng)/值' 對(duì)”之間使用“,”(逗號(hào))分隔。
•數(shù)組是值(value)的有序集合。一個(gè)數(shù)組以“[”(左中括號(hào))開(kāi)始,“]”(右中括號(hào))結(jié)束。值之間使用“,”(逗號(hào))分隔。
•值(value)可以是雙引號(hào)括起來(lái)的字符串(string)、數(shù)值(number)、true、false、 null、對(duì)象(object)或者數(shù)組(array)。這些結(jié)構(gòu)可以嵌套。
•字符串(string)是由雙引號(hào)包圍的任意數(shù)量Unicode字符的集合,使用反斜線(xiàn)轉(zhuǎn)義。一個(gè)字符(character)即一個(gè)單獨(dú)的字符串(character string)。
•字符串(string)與C或者Java的字符串非常相似。
•數(shù)值(number)也與C或者Java的數(shù)值非常相似。除去未曾使用的八進(jìn)制與十六進(jìn)制格式。除去一些編碼細(xì)節(jié)。
•空白可以加入到任何符號(hào)之間。 以下描述了完整的語(yǔ)言。
JSON舉例(javascript中使用json):
<script type="text/javascript">
var user =
{
"Id":1,
"Name":"Hubery",
"Age":23,
"Address":
{
"City":"Beijing","ZipCode":"111111"
},
"Email":"hubery@jb51.net"
};
alert(user.Id);
alert(user.Name);
alert(user.Age);
alert(user.Address.City);
alert(user.Address.ZipCode);
alert(user.Email);
</script>
下面我們把Address屬性定義成數(shù)組,用戶(hù)有兩個(gè)Address:
<script type="text/javascript">
var user =
{
"Id":1,
"Name":"Hubery",
"Age":23,
"Address":
[
{"City":"Beijing","ZipCode":"111111"},
{"City":"Langfang","ZipCode":"222222"}
],
"Email":"hubery@jb51.net"
};
alert(user.Id);
alert(user.Name);
alert(user.Age);
alert(user.Address[0].City);//還可以這樣:alert(user.Address[0]["City"]);
alert(user.Address[0].ZipCode);
alert(user.Address[1].City);
alert(user.Address[1].ZipCode);
alert(user.Email);
</script>
如果我們想要一個(gè)用戶(hù)列表,能行嗎?答案是,沒(méi)問(wèn)題!
<script type="text/javascript">
var user =
[
{
"Id":1,
"Name":"Hubery",
"Age":23,
"Address":
[
{"City":"Beijing","ZipCode":"111111"},
{"City":"Langfang","ZipCode":"222222"}
],
"Email":"hubery@jb51.net"
},
{
"Id":2,
"Name":"Chris",
"Age":24,
"Address":{"City":"Beijing","ZipCode":"100085"},
"Email":"chris@jb51.net"
}
]
alert("Id: "+user[0].Id+"\r\nName: "+
user[0].Name+"\r\nAge: "+
user[0].Age+"\r\nAddress: ("+
user[0].Address[0].City+","+user[0].Address[0].ZipCode+") ("+user[0].Address[1].City+","+user[0].Address[1].ZipCode+")\r\nEmail: "+
user[0].Email);
alert("Id: "+user[1].Id+"\r\nName: "+
user[1].Name+"\r\nAge: "+
user[1].Age+"\r\nAddress: ("+
user[1].Address.City+","+user[1].Address.ZipCode+")\r\nEmail: "+
user[1].Email);
</script>
- javascript:json數(shù)據(jù)的頁(yè)面綁定示例代碼
- JavaScript Ajax Json實(shí)現(xiàn)上下級(jí)下拉框聯(lián)動(dòng)效果實(shí)例代碼
- javascript打印輸出json實(shí)例
- java與javascript之間json格式數(shù)據(jù)互轉(zhuǎn)介紹
- 將json當(dāng)數(shù)據(jù)庫(kù)一樣操作的javascript lib
- javascript仿php的print_r函數(shù)輸出json數(shù)據(jù)
- javaScript 動(dòng)態(tài)訪(fǎng)問(wèn)JSon元素示例代碼
- JavaScript中json使用自己總結(jié)
- js/ajax跨越訪(fǎng)問(wèn)-jsonp的原理和實(shí)例(javascript和jquery實(shí)現(xiàn)代碼)
- JavaScript中json對(duì)象和string對(duì)象之間相互轉(zhuǎn)化
- javascript操作JSON的要領(lǐng)總結(jié)
- javascript生成json數(shù)據(jù)簡(jiǎn)單示例分享
相關(guān)文章
Bootstrap datepicker日期選擇器插件使用詳解
這篇文章主要為大家詳細(xì)介紹了Bootstrap datepicker日期選擇器插件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07js如何監(jiān)聽(tīng)input輸入事件及使用防抖封裝函數(shù)處理方法
這篇文章主要給大家介紹了關(guān)于js如何監(jiān)聽(tīng)input輸入事件及使用防抖封裝函數(shù)處理方法的相關(guān)資料,最近有一個(gè)需求,需要我們實(shí)時(shí)監(jiān)聽(tīng)input輸入框中的內(nèi)容,從而帶來(lái)更好的用戶(hù)體驗(yàn),需要的朋友可以參考下2023-07-07js實(shí)現(xiàn)讓某個(gè)動(dòng)作延遲幾秒執(zhí)行
這篇文章主要介紹了使用js實(shí)現(xiàn)讓某個(gè)動(dòng)作延遲幾秒執(zhí)行的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06極酷的javascirpt,讓你隨意編輯任何網(wǎng)頁(yè)
極酷的javascirpt,讓你隨意編輯任何網(wǎng)頁(yè)...2007-02-02