|
在 ECMAScript 代码中,经常会需要与 JSON 格式的数据进行交换。JSON 也通常被用来作为客户端与服务器端之间的数据传输格式。这主要是因为在 ECMAScript 代码中处理 JSON 格式非常自然。JSON 格式数据经过解析之后,可以直接当成 ECMAScript 中的对象来使用。在使用 JSON 格式时的一个重要问题是如何在 ECMAScript 中的对象与文本形式之间进行互相转换。从服务器端通过 HTTP 协议获取的 JSON 文本需要经过解析之后,才能在 ECMAScript 代码中来使用;当需要向服务器端发送数据时,需要先把 ECMAScript 中的对象转换成文本格式。在 ECMAScript 规范第三版中并没有对 JSON 格式数据的转换进行规范,大多数程序都依靠 JavaScript 框架来提供相关的支持。
ECMAScript 规范第五版中定义了 JSON 对象来提供对 JSON 格式数据的处理。JSON 对象中提供了 parse 和 stringify 函数来进行转换操作,其中 parse 函数把 JSON 文本转换成相应的对象,而 stringify 则把 ECMAScript 中的对象转换成 JSON 文本。parse 函数可以接收两个参数。第一个参数是 JSON 文本,需要符合 JSON 格式的要求。第二个参数容易被忽视。该参数是一个函数,可以用来对解析过程中得到的属性名值对进行过滤和转换。该函数在被调用时会提供两个参数,分别是属性的名称和值。该函数的返回值会被作为解析结果对象中使用的值。
代码清单 6 中给出了 parse 函数的使用示例。如果在调用时使用了第二个参数,并且该函数的返回值为 undefined,则对应的属性不会出现在结果对象中。
|
|