PHP串行化与JSON

2008-06-19 02:36:52  来源:baidu.com 

WebjxCom提示:串行化即将变量转换成字节流的过程。



在JavaScript中串行化为JSON—使用prototype.js

如果你和我一样,喜欢在自己的项目中使用开源的JavaScript框架,那么你可能可以省去使用json2.js文件了,这里以protype.js为例,该文件可以在http://www.prototypejs.org下载,由于本文不是在讲JavaScript框架,这里我假设你对prototype.js的使用已经有所了解了。
prototype.js中提供了对Object对象的toJSON方法,你可以使用Object.toJSON()方法来实现对对象的串行化,例如:

代码:
var cat=
{
name:"hellokitty",
height:"6 apples"
}
alert(Object.toJSON(cat));
//将弹出对话框,内容为 {"name": "hellokitty", "height": "6 apples"}

另外,在prototype.js中还有另外的JSON支持,主要是在Ajax对象中对Ajax返回请求中JSON内容的解析。这里暂时与我们的内容无关,也不再介绍了。

PHP与JSON

在上面我们一起了解了PHP进行对象串行化的方法以及在JavaScript中进行将对象串行化为JSON的方法,你大致会质疑我为什么将二者放在一起,因为他们的语法实际是不完全一样的,然而,在PHP中,可以对JSON文本进行反串行化,也可以将PHP的对象串行化为JSON而非PHP风格的文本。这主要是靠json_decode和json_encode两个函数来完成的,需要特别说明的是,这两个函数在PHP 5 >= 5.2.0中才被支持,如果你要编写运行在PHP4环境下的程序,那么这两个函数是不可以使用的。

json_decode函数

语法
mixed json_decode ( string $json [, bool $assoc] )
获取一个JSON编码文本,并且将其转换为PHP变量
参数
json
被JSON编码的文本
assoc
当为TRUE时,返回的值为联合数组
返回值
返回一个对象,或者如果可选的assoc参数为TRUE,则一个联合数组将会被返回

json_encode函数

语法
string json_encode ( mixed $value )
该函数返回一个值的JSON表达式
参数
value
要被编码的值,可以为除resource外的任何类型参数
这个函数仅在UTF-8编码格式时起作用
返回值
当成功时返回编码后的JSON文本

文章评论

共有 0 位网友发表了评论 查看完整内容