詳數(shù)JSON版本的種種調(diào)用與測(cè)試
如果調(diào)用JSON沒(méi)有生效,可以繼續(xù)調(diào)用getElementsByTagName在地址部分查找***個(gè)地址元素。這就取得了文檔的***個(gè)DOM子節(jié)點(diǎn),就是一個(gè)文本節(jié)點(diǎn),并取得節(jié)點(diǎn)的值,這就是你想要的街道地址,首先,來(lái)比較一下JSON版本和XML語(yǔ)法。
- {
- "fullname": "Sean Kelly",
- "org": "SK Consulting",
- "emailaddrs": [
- {"type": "work", "value": "kelly@seankelly.biz"},
- {"type": "home", "pref": 1, "value": "kelly@seankelly.tv"}
- ],
- "telephones": [
- {"type": "work", "pref": 1, "value": "+1 214 555 1212"},
- {"type": "fax", "value": "+1 214 555 1213"},
- {"type": "mobile", "value": "+1 214 555 1214"}
- ],
- "addresses": [
- {"type": "work", "format": "us",
- "value": "1234 Main StnSpringfield, TX 78080-1216"},
- {"type": "home", "format": "us",
- "value": "5678 Main StnSpringfield, TX 78080-1316"}
- ],
- "urls": [
- {"type": "work", "value": "http://seankelly.biz/"},
- {"type": "home", "value": "http://seankelly.tv/"}
- ]
- }
如你所看到的,JSON有結(jié)構(gòu)化的嵌套數(shù)據(jù)元素,這一點(diǎn)和XML相似。JSON版本也是基于文本的,XML也是如此。兩者都使用Unicode。 JSON和XML都很容易閱讀。主觀上,JSON更清晰,冗余更少。JSON WEB站點(diǎn)嚴(yán)格地描述了JSON語(yǔ)法,目前就是這樣的。
它確實(shí)是一個(gè)簡(jiǎn)單的小語(yǔ)言! XML確實(shí)適合標(biāo)記文檔,但是JSON是數(shù)據(jù)交互的理想格式。每個(gè)JSON文檔描述了一個(gè)這樣一個(gè)對(duì)象,該對(duì)象包含有:嵌套對(duì)象、數(shù)組、字符串、數(shù)字、布爾值或空值。#t#
些地址卡例子代碼中,JSON版本是更輕量級(jí)的,只占用了682字節(jié)的空間,而XML版本需要744字節(jié)空間。盡管這不是一個(gè)可觀的節(jié)省。而實(shí)際的好處則來(lái)自解析過(guò)程。XML對(duì)比JSON:地位喪失通過(guò)使用XMLHttpRequest對(duì)象,可以從你的基于AJAX的應(yīng)用程序取得XML和JSON文件。典型的,交互代碼如下:
- function myHandler() {
- if (req.readyState == 4 /*complete*/) {
- var addrField = document.getElementById('addr');
- var card = eval('(' + req.responseText + ')');
- addrField.value = card.addresses[0].value;
- }
- }