| PHP 5.2.0 的新功能 JSON decoder & encoder |
| 時(shí)間:Fri, 10 Nov 2006 02:50:31 +0800 作者: 類(lèi)別: |
JSON 全稱(chēng) JavaScript Object Notation,是一種非常輕量級別的數據串行化格式,屬于 JavaScript 語(yǔ)言的一部分。比如下面這里是一個(gè)例子。 var myJSONObject = {"bindings": [ {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"}, {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"}, {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"} ] }; 這樣的話(huà),我們將獲得一個(gè)叫做 myJSONObject 的對象,其中包含一個(gè)獨立的成員 bindings,bindings 包含一個(gè)數組,這個(gè)數組有三個(gè)對象,這三個(gè)對象各自包含三個(gè)成員 ircEvent,method 和 regex。你可以使用其他方式,比如 XMLHTTPRequest 方式獲得一個(gè)字符串,然后通過(guò)下面的方式將其轉換為一個(gè) JavaScript 對象。 var myObject = eval(‘(‘ + myJSONtext + ‘)‘);與 XML 相比,對 JSON 對象中的數據進(jìn)行操縱時(shí)不需要使用到如 DOM 這樣的復雜的 API,而是直接使用如 myJSONObject.bindings[0].ircEvent 這樣的語(yǔ)法就可以獲得數據,在某些時(shí)候顯得更靈活一些。 PHP 5.2.0 新版本中默認支持一個(gè)新的 JSON extension,實(shí)現了兩個(gè)函數 json_decode() 和 json_encode(),前者可以將 JSON 格式的字符串還原為 PHP native 的數組和常規對象,而后者則可以將 PHP native 的數組和常規對象編碼為 JSON 格式的字符串。我覺(jué)得這是一個(gè)非常有用的功能。我之前已經(jīng)在我開(kāi)發(fā)的 m2099 應用中使用到了 JSON extension,而那個(gè)時(shí)候需要自己在服務(wù)器上去編譯這個(gè) extension,可以想見(jiàn),在未來(lái)的 distribution 中,由于這個(gè) extension 成為 built-in 方式,其使用會(huì )更加方便,就好像從 PHP 5.0.0 開(kāi)始支持的 SimpleXML 對象一樣,可以大大節約開(kāi)發(fā)人員的時(shí)間,讓編碼更有樂(lè )趣。 JSON 有一個(gè)官方網(wǎng)站 http://www.json.org/ ,上面有更詳細得多的信息。 O‘Reilly 的《Head Rush Ajax》一書(shū)中也有關(guān)于 JSON 的詳細指南和例子。 |
聯(lián)系客服