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/中定义的。
   71   72   73   74   75   76   77   78   79   80   81