快速业务通道

PHP串行化与JSON

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-25
果你要编写运行在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文本

json_decode函数实例

下面两个例子都基于我们的一个情景假设,即,我们有一个用户注册的模块,这个模块以“面向对象”的方式工作,在json_decode函数实例中,我们在前台将用户的注册信息变为一个类的属性,而后传递到后台的php文件(这里为了简便,就不用Ajax了)。在json_encode实例中,我们在html文件中引用一个js 文件,地址指向php文件,在php文件中输出json编码后的用户对象(同样为了简便,我们直接生成一个对象而不从数据库中取信息),并在html中输出。
好了,先来看前台的页面json_encode.htm,这个页面模仿了通常的注册页面,在其上面有一个表单,当提交时,触发 JavaScript函数,生成一个用户对象user,将表单内容设为用户对象的属性,生成JSON文本,以POST方式传递到后台的 json_encode.php文件。在js_encode.php文件中,将JSON文本用json_decode函数解析为PHP对象,并输出。
好了,先来看json_encode.html文件,文件代码如下:

代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>json_decode</title>
<script src="json2.js" type="text/javascript"></script>
<script type="text/javascript">
function JSON_test(o){
var user = {
       name:document.getElementById(''txt_name'').value,
       email:document.getElementById(''txt_email'').value,
       password:document.getElementById(''txt_name'').value
}
var json_string = JSON.stringify(user);

document.getElementById(''txt_json'').value=json_string;
alert("点击确定后将提交表单");
o.submit();
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="json_encode.php" onsubmit="JSON_test(this)">
   <label for="txt_name">姓名</label>
   <p>
<input type="text" name="txt_name" id="txt_name" />
   </p>
   <label for="txt_email">邮箱</label>
   <p>
<input type="text" name="txt_email" id="txt_email" />
   </p>
   <p>
<label for="txt_password">密码</label>
   </p>
   <p>
<input type="text" name="txt_password" id="txt_password" />
   </p>
   <p>
   <input type="text" name="txt_json" id="txt_json" />
<label for="button"></label>
<input type="submit" name="button" id=

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号