处理JSON数据

目录

这一段时间,学习网页制作时,也尝试Google和新浪等网站的API,两者都是REST(

Representational State Transfer)的软件架构,通过HTTP传递指令参数并获取数据。数据一般有两种格式,XML和JSON。XML文件较大,就试了下JSON这种短小精悍的数据结构。
JSON代表JavaScript 对象表示法(JavaScript Object Notation)。参看w3cschool的教程。
一个典型的JSON结构如下所示(来自维基百科)

{ } 代表一个对象。
name:value 表示一个数据项,可以为数字(例如0)、字符串(用双引号包含,如“风中飞舞”)、布尔值(true 或者 false)。不同数据项用逗号分隔。
[ ] 表示数组。

处理JSON数据

JavaScript

JavaScript中可以直接使用JSON对象。例如在firebug控制台中:

obj = { “name”:”myobj”,”type”:”json”}
Object { name=“myobj”, type=“json”}
JSON最常用的使用方法是将JSON文本(字符串)解析成JavaScript对象。JavaScript的eval函数实现这样的功能。

jQuery库

jQuery.parseJSON() 函数可以将JSON字符串解析成JavaScript对象。

jQuery还可以通过Ajax技术,使用 jQuery.getJSON() 获取JSON文件。该函数还可以通过JSONP技术,设置callback函数,解决Ajax限制跨域传输的问题,实现跨域抓取JSON文件。
很多函数需要数组型参数,但parseJSON方法得到的是对象,需要将javascript对象转换成javascript数组。jQuery.makeArray()函数可以将数组形式的对象转换成数组(数组形势的对象应该是指没有成员方法的对象)。

PHP

PHP可以实现数组或对象与JSON格式数据字符串之间的转换。
json_encode()
将数组或对象编码成JSON字符串。
json_decode()
将JSON字符串解析成数组或对象。
用var_dump()输出的数组显示如下

编码后,得到

反之亦然。