Page 76 - JavaScript修炼之道
P. 76
66 第五部分 服务器端技术
任务 29 使用 JSON
在过去几年间,JSON逐渐成为了JavaScript客户端与远程服务器之间交换信息的首选方式。
①
JSON格式 实际上是标准的JavaScript中字面量格式的子集。JSON有一定的局限性,但相对于
XML,它有两个重要的优点。
它更轻便(不那么烦琐)。
除了JavaScript自身,它并不依赖于其他任何客户端语言来解释和处理。
现在大多数服务器端语言都可以把合适的数据编码成JSON串,以及对收到的JSON串进行解
码。根据你选用的语言,你可能需要安装额外的库(很容易Google到),如果你用的是Ruby、PHP、
Python、Java、ColdFusion或者ASP.NET(只是列了几项)的话,可以确信能找到这样的库。
你可以把正常的整数下标数组或者关联数组(也称哈希、字典或者映射)编码成JSON。后
者的键(key)可以是任何内容(只要它们是放在引号里),而值(value)可以是数字、字符串(除
一些转义外)、布尔值、null或者是任意嵌套的正常/关联数组。JSON解码比较简单,但是生成JSON
串需要花一点功夫,所以大多数JavaScript框架都为你实现了这个功能。而且它们通常提供了针对
Ajax请求的特定JSON功能,这就更方便了。
注意,JSON应该具有一定的安全性,因此它并不序列化函数。合法的JSON串应该对应只代
表数据的对象字面值,当被执行及解释的时候,它自己不会有任何害处。然而,而如果你收到的
不是有效的JSON串,而嵌有对恶意函数的调用,那么这就会有危险。正是因为这样,大多数JSON
解析功能都提供了在解析之前检查或净化JSON串的选项。
本任务的这份代码实现了用Ajax获取JSON格式的系统信息对象,然后用它生成一个表格,
这其中涉及几个简练的技巧。你应该认真看看它!
最近,流行一种使用JSON的方式,叫做JSON-P。它的做法实际上是把JSON对象传给脚本中
预定义的回调函数。你将在下个任务中学到关于它的更多内容。
——————————
① 正如在http://www.json.org/中定义的。