总目录
What、Why、How
What
Why
How
PHP串行化语法
PHP串行化实例
在JavaScript中串行化为JSON—使用json2.js
在JavaScript中串行化为JSON—使用prototype.js
PHP与JSON
json_decode函数
json_encode函数
json_decode函数实例
json_encode函数实例
实践出真知
背景说明
前台JavaScript部分
后台PHP部分
我还有话要说
What、Why、How
What
Ok
,各位亲爱的朋友
,让我们开始这个新概念的旅程,串行化这个话题可能大家以前都没有多加关注,事情其实起源于那天我随便翻翻PHP手册,发现这个串行化的函数,之后闲来无聊又做一个WordPress的插件,这个时候顺便用了一下串行化,发现在某些场合的确非常方便
。 先来解释下串行化:简单来说,串行化即将变量转换成字节流的过程
。串行化的提出,有效的解决了对象的保存和传输的问题,举例来说,我在JavaScript中建立了一个对象,我现在想将这个对象保存到
服务器端的数据库中,那么我如何进行操作呢,这个时候往往就用到了对象的串行化。在JavaScript的串行化中不得不提JSON,JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。
人们通常将JSON和XML进行比较,二者都是将对象扁平化(稍后我们解释这个“扁平化”)的一种手段,XML的特点是结构严谨,而JSON的特点则是简单易读、容易使用程序进行分析,因为它能够很简单的将一个对象转换为一个字符流的形式,例如如下代码:
代码:
{"type":"human","name":"hanguofeng","age":22}
则是一个JSON表达式,他保存了一个对象,我们如何将它恢复为对象呢?很简单,如下:
代码:
varanimal_str='{"type":"human","name":"hanguofeng","age":22}';
varanimal2=eval('('+animal_str+')');
我们通过JavaScript的求值函数,将JSON表达式进行运算,并返回值,用以获得一个对象,到这里,我想你一定会和我一样,对JSON格式的创造者的思维佩服不已吧。
本来说讲串行化的,“不小心”谈到JSON,并且讲了这么多,呵呵,跑题了吗?没有,PHP的串行化和JSON是非常像的,一个PHP的串行化表达式如下:
代码:
a:3:{s:4:"type";s:5:"human";s:4:"name";s:10:"hanguofeng";s:3:"age";s:2:"20";}
他看起来结构和JSON有些类似,实际上,这个表达式是如下数组的串行化结果:
代码:
$animal=
array
(
"type"=>"human",
"name"=>"hanguofeng",
"age"=>"20"
);
OK,上面的一些介绍只是让你大致看到串行化和JSON是什么样的东西,你无须对这里的代码过分纠结,我们在后面会详细讲解的,下面我们来谈谈为什么要使用串行化。