如何更很好的生成JSON文本进行详细介绍

开发
下面看看页面json_encode.htm,这个页面模仿了通常的注册页面,在其上面有一个表单,当提交时,触发JavaScript函数,生成一个用户对象user,将表单内容设为用户对象的属性,生成JSON文本。

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

Prototype.js中提供了对Object对象的toJSON方法,你可以使用Object.toJSON()方法来实现对对象的串行化,例如: 复制JSON文本到剪贴板

代码:

  1. de>var cat=  
  2. {  
  3. name:"hellokitty",  
  4. height:"6 apples"  
  5. }  
  6. alert(Object.toJSON(cat));   
  7. //将弹出对话框,内容为 {"name": "hellokitty", "height": "6 apples"}de> 

另外,在prototype.js中还有另外的JSON支持,主要是在Ajax对象中对Ajax返回请求中JSON内容的解析。这里暂时与我们的内容无关,也不再介绍了。在上面我们一起了解了PHP进行对象串行化的方法以及在JavaScript中进行将对象串行化为JSON的方法。

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

下面两个例子都基于我们的一个情景假设,即,我们有一个用户注册的模块,这个模块以“面向对象”的方式工作,在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对象,并输出。

责任编辑:chenqingxiang 来源: 清华大学出版社
相关推荐

2010-01-08 11:11:38

JSON 序列化

2010-01-07 15:41:58

XML转换为JSON

2010-03-02 14:35:58

linux文本环境安装

2009-12-24 10:04:38

Linux进行C编译

2010-01-06 15:30:51

JSON和XML

2010-01-08 14:27:45

JSON 帮助

2010-03-05 10:10:04

2010-01-05 17:06:46

JSON 数据

2009-12-04 15:28:36

PHP JSON类库

2009-12-08 09:21:13

WCF数据量

2010-01-05 13:29:50

JSON对象

2018-03-27 13:33:48

百度

2009-12-29 15:30:15

ADO Insert

2010-02-03 15:09:13

Python 构建工具

2010-01-08 14:36:01

生成 JSON

2009-12-29 15:22:40

ADO.NET类库

2010-01-11 11:27:25

C++语言

2010-03-30 16:29:24

共享无线上网

2010-03-24 15:19:35

Python库

2010-08-27 10:14:48

无线共享网络
点赞
收藏

51CTO技术栈公众号