一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

XML的代替者----JSON

我個(gè)人覺得phpJavascript各有長(zhǎng)處,如果能完美的結(jié)合起來,那將創(chuàng)造出許許多多的奇跡! 我是初次寫此類文章,Bug難免,請(qǐng)各位指正~ 
    現(xiàn)在AJAX應(yīng)用非常流行,而在AJAX中客戶端Javascript和服務(wù)端動(dòng)態(tài)腳本的通信是關(guān)鍵。如果傳輸?shù)男畔⒈容^簡(jiǎn)單,通常我們會(huì)直接采用字符串的方式,如果信息結(jié)構(gòu)復(fù)雜一點(diǎn),則通常用XML文檔。XML文檔雖然應(yīng)用廣泛,但是用php生成和用Javascript處理卻不是一件很容易的事情。這里我推薦一種XML文檔的比較好簡(jiǎn)化替代方案:JSON! 
    首先我們來了解一下Javascript的基礎(chǔ)知識(shí)。 
    1.創(chuàng)建數(shù)組,可以用JS內(nèi)建的類Array來初始化,也可以用JSON符號(hào)"[]"。下面通過兩種方式創(chuàng)建的arr1和arr2的實(shí)質(zhì)是一樣的: 

var arr1 = new Array(); 
arr1[0] = "apple"; 
arr1[1] = "google"; 
arr1[2] = "longbill"; 

var arr2 = ["apple","google","longbill"];
注意,數(shù)組的索引也可以是字符串,如 arr1["name"] = "longbill"; 這時(shí)的數(shù)組就相當(dāng)于對(duì)象了。。。 
    2.創(chuàng)建對(duì)象,可以用JS內(nèi)建的類Object來初始化,也可以用JSON符號(hào)"{}"。下面通過兩種方式創(chuàng)建的obj1和ob2的實(shí)質(zhì)也是一樣的: 


var obj1 = new Object(); 
obj1.name = "longbill"; 
obj1.age = 18; 

var obj2 = { name:"longbill",age:18 };
注意,這里"{"和"}"之間必須寫成"鍵:值"的形式,而且不同的"鍵:值"之間要用","分割。 "鍵"中也可以包含空格等特殊字符,此時(shí)要用""(引號(hào))來引用,如 "phone number":123456 
    其實(shí)在JS中,數(shù)組的本質(zhì)是一個(gè)對(duì)象,對(duì)象本身也是一個(gè)數(shù)組。所以, obj1.name 和 obj1["name"] 是同一個(gè)引用。 
    我們還可以通過JSON符號(hào)的嵌套來定義復(fù)雜的S對(duì)象: 


var people = [ 
    { 
        name:"longbill", 
        age:18 
    }, 
    { 
        name:"neal", 
        age:19 
    }, 
    { 
        name:"glocklee", 
        age:17 
    } 
];
//這個(gè)應(yīng)該看的懂吧~~ 
大部分XML文檔都可以用JSON來表達(dá): 


<?xml version="1.0"?> 
<root> 
  <book> 
    <name>Ju love</name> 
    <price>$15</price> 
  </book> 
  <book> 
    <name>Javascrip</name> 
    <price>$25</price> 
  </book> 
</root>

如果用JSON就可以表達(dá)為: 


root: 

  { 
     name:"Ju love", 
     price:"$15" 
  }, 
  { 
     name:"Javascript", 
     price:"$25" 
  } 
]}

是不是簡(jiǎn)化很多? 

    而且客戶端JS處理起來也很簡(jiǎn)單,只要用執(zhí)行字符串函數(shù) "eval" 就可以將JSON信息提取出來,而如果是XML文檔,那就不的不用大量的標(biāo)準(zhǔn)DOM操作來提取其中的數(shù)據(jù)。如: 


//已經(jīng)用AJAX從服務(wù)端下載了一個(gè)JSON文件(字符串),保存在變量 json 里 
eval("var myvar = "+json); 
//這樣,JSON里的信息就表達(dá)在myvar這個(gè)變量里了。
缺點(diǎn):一旦JSON的格式錯(cuò)誤,將導(dǎo)致服務(wù)端JS系統(tǒng)錯(cuò)誤,甚至崩潰。 
   解決辦法: 
   最好在eval之前使用try(試探執(zhí)行),如 


//已經(jīng)用AJAX從服務(wù)端下載了一個(gè)JSON文件(字符串),保存在變量 json 里 
try { 
    eval("var myvar = "+json); 
} catch(e) { alert('json syntax error!'); } 
//這樣,即使JSON格式錯(cuò)誤,也只會(huì)彈出一個(gè)提示框,而不會(huì)拋出一個(gè)腳本錯(cuò)誤!

JavaScript技術(shù)XML的代替者----JSON,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 婷婷激情五月综合 | 天天做天天爱夜夜爽女人爽宅 | 精品九九久久 | 水蜜桃一二二区视在线 | 欧美精品亚洲精品日韩专区 | 亚洲天堂一区二区 | 久久久国产乱子伦精品 | 麻豆系列 | 久色伊人| 国产黄频在线观看高清免费 | 99久久精品免费观看国产 | 高清国产一区二区三区 | 视色4se影院在线播放 | 日韩深夜视频 | 高清在线观看免费 | 狠狠干影院| 日本国产一区二区三区 | 婷婷丁香五月中文字幕 | 一个人免费播放在线视频看片 | 色www情| 极品销魂一区二区三区 | 91精品视频在线观看免费 | 免费看污视频在线观看 | 亚洲爽视频 | 国产精品麻豆一区二区 | 国产资源视频在线观看 | 亚洲第一视频 | 日日噜噜夜夜躁躁狠狠 | 色中色网址导航 | 一级做a爰片久久毛片看看 一级做a爰片久久毛片毛片 | 国产对白91色拍高清精品 | 久久66热re国产毛片基地 | 亚洲综合图片网 | 91年精品国产福利线观看久久 | 日韩高清一区二区三区五区七区 | 国产叼嘿久久精品久久 | 日韩亚洲国产综合久久久 | 久久激情五月 | 国产码一区二区三区 | 大香网伊人久久综合观看 | 思思久久q6热在精品国产 |