新聞中心
如果你和我一樣,喜歡在自己的項(xiàng)目中使用開源的JavaScript框架,那么你可能可以省去使用json2.js文件了,這里以protype.js為例,該文件可以在http://www.prototypejs.org下載,由于本文不是在講JavaScript框架,這里我假設(shè)你對(duì)prototype.js的使用已經(jīng)有所了解了。

Prototype.js中提供了對(duì)Object對(duì)象的toJSON方法,你可以使用Object.toJSON()方法來(lái)實(shí)現(xiàn)對(duì)對(duì)象的串行化,例如: 復(fù)制JSON文本到剪貼板
代碼:
- de>var cat=
- {
- name:"hellokitty",
- height:"6 apples"
- }
- alert(Object.toJSON(cat));
- //將彈出對(duì)話框,內(nèi)容為 {"name": "hellokitty", "height": "6 apples"}de>
另外,在prototype.js中還有另外的JSON支持,主要是在Ajax對(duì)象中對(duì)Ajax返回請(qǐng)求中JSON內(nèi)容的解析。這里暫時(shí)與我們的內(nèi)容無(wú)關(guān),也不再介紹了。在上面我們一起了解了PHP進(jìn)行對(duì)象串行化的方法以及在JavaScript中進(jìn)行將對(duì)象串行化為JSON的方法。
你大致會(huì)質(zhì)疑我為什么將二者放在一起,因?yàn)樗麄兊恼Z(yǔ)法實(shí)際是不完全一樣的,然而,在PHP中,可以對(duì)JSON文本進(jìn)行反串行化,也可以將PHP的對(duì)象串行化為 JSON而非PHP風(fēng)格的文本。這主要是靠json_decode和json_encode兩個(gè)函數(shù)來(lái)完成的,需要特別說(shuō)明的是,這兩個(gè)函數(shù)在PHP 5 >= 5.2.0中才被支持,如果你要編寫運(yùn)行在PHP4環(huán)境下的程序,那么這兩個(gè)函數(shù)是不可以使用的。#t#
下面兩個(gè)例子都基于我們的一個(gè)情景假設(shè),即,我們有一個(gè)用戶注冊(cè)的模塊,這個(gè)模塊以“面向?qū)ο蟆钡姆绞焦ぷ鳎趈son_decode函數(shù)實(shí)例中,我們?cè)谇芭_(tái)將用戶的注冊(cè)信息變?yōu)橐粋€(gè)類的屬性,而后傳遞到后臺(tái)的php文件(這里為了簡(jiǎn)便,就不用Ajax了)。
在json_encode實(shí)例中,我們?cè)?html文件中引用一個(gè)js文件,地址指向php文件,在php文件中輸出json編碼后的用戶對(duì)象(同樣為了簡(jiǎn)便,我們直接生成一個(gè)對(duì)象而不從數(shù)據(jù)庫(kù)中取信息),并在html中輸出。
好了,先來(lái)看前臺(tái)的頁(yè)面json_encode.htm,這個(gè)頁(yè)面模仿了通常的注冊(cè)頁(yè)面,在其上面有一個(gè)表單,當(dāng)提交時(shí),觸發(fā)JavaScript函數(shù),生成一個(gè)用戶對(duì)象user,將表單內(nèi)容設(shè)為用戶對(duì)象的屬性,生成JSON文本,以POST方式傳遞到后臺(tái)的json_encode.php文件。在 js_encode.php文件中,將JSON文本用json_decode函數(shù)解析為PHP對(duì)象,并輸出。
網(wǎng)站名稱:如何更很好的生成JSON文本進(jìn)行詳細(xì)介紹
文章轉(zhuǎn)載:http://www.5511xx.com/article/dpopeic.html


咨詢
建站咨詢
